How to trigger installation of User-Available Application purely through WMI or other code without having to use Software Center? - wmi

In SCCM, WMI class CCM_Application in ClientSDK does not list User-Available (Target = User Collection, Purpose = Available) Applications unless you Install them manually from the Software Center once, and hence you cannot trigger Installation ("Install" method of the "CCM_Application" class) of an application that has been made available to a user but has not yet been installed through the Software Center. Is there any way we could trigger the installation of such Application from the client machine using WMI or other code without actually having to go to the Software Center for the first time? (which otherwise, defies the purpose of ClientSDK IMO).
I do realize that there is a procedure that is followed behind the scenes whenever the deployment is made available to the user, the Policy gets downloaded (or enforced) to the client machine only once the installation is triggered through the Software Center and not before that. But all these steps of discovering and installing the User-Available Application, is it possible to do that from the client machine just like the Software Center, WITHOUT ever having to use the Software Center? There has to be a way.
EDIT:
Our purpose is not to automate the process or to use purpose = required. What we are trying to achieve is to trigger the installation of User-Available Applications externally (not automatically) through WMI without having to go to the Software Center, just like we can Install/Uninstall Device-targeted Applications though the Methods exposed in the WMI class CCM_Application without having to use Software Center at all. We can also do the same for User-Available apps as well, but only once they have been installed through the Software Center, because then they get added to the CCM_Application just like the other apps and you can install/uninstall them without using the Software Center. Why can't we perform the first initial detection of User-Available Apps and install them for the first time as well? If SDK allows us to do all the above functionality, why are we forced to use Software Center for just one step? There should/must be a way.
Can anyone refer an SCCM expert to this Question? Anyone from Microsoft who actually have solution to this?
I have already read many long blogs on the internet related to this query but none seem to have figured it out.
Related Questions:
CCM_Application User available software missing
(unsolved)
Automated Software deployment through SCCM 2012 using wmi
This question has been answered but the objective there is different. It simply creates and starts the deployment of a software from the Configuration Manager. What I am trying to achieve is to Install the already deployed software (which is Available and hence not automatically installed), right from the client machine and not the server. Just like the Software Center does.

Related

Geolocation, Geocoding in C++

I am working on a project or application built in Windows using C++. I would like to seek help on any idea or approach or existing libraries that implements geolocation/geocoding, since I want to limit may C++ Windows application to run on certain region or country only.
Any suggestions, comments will be a great help. Thanks.
It won't be possible to prevent an application from running locally in certain regions. A user can always disconnect from the internet and then you'll have no idea where they're located.
What you could do is to have some of your app logic run in a server, then make requests to your server from the local C++ app. Then you can geolocate based on the IP address of the request, often a standard feature in cloud platforms.
If you do want to explore getting someone's location, you can look at Apple's Core Location or Microsoft's Geolocation namespace.

How to disable windows server 2016 automatic updates on GCE

We have multiple windows server 2016 running, will automatic updates on. I want to change the Windows Update mode to Manual.
The problem is when instance is created, out software installation fails many times due to running updates installation. I tried to set instance metadata 'disable-agent-updates' to TRUE. But it doesn't seem to be working.
Please help on how to modify windows update mode on creation and start of instance.
The quick answer is you cannot with Google provided Windows images.
You can create a Windows VM, configure as you desire and then create a new image that you use to launch new instances. This will accomplish your goal with some effort. This is standard practice for companies that manage/control patches and updates.
Note: I do not recommend disabling Windows Update from installing security patches on startup unless you understand the implications.

Any equivalent linux package repository mirror to Windows Server

Is there any way to host windows update server for software updates? I am aware of WSUS, but it seems that not used for public purpose.
There is SCCM which is distributed by Microsoft itself.
InTune (again offered by MS) is a cloud based solution and could
also be useful, depending on your specific requirements.
Maybe Opsi is worth a look, too. It uses Linux servers to manage
Windows clients. Some parts of it (the ones you seem to be interested
in) are free to use and open source.

Deploy a local webservice on many machines - is it the right strategy?

I was wondering about the best way to deliver private web service instances to lots of users, so the user would always be able to connect to their own offline version of a service, just like running a web service from visual studios while debugging. I was struggling with setting this up in VS2013 even with the many online tutorials, but I am not sure if its not working because it was never supposed to work this way.
I have provided this in-depth explanation of my issue as i am not sure i am going about this in the right way and would appreciate feedback:
Background:
I have a web service to interface with an engine. This deals with the front-end and builds a set of commands for how to make a CAD model. These commands are for controlling the 3rd party CAD software's API. Therefore the engine can be seen to have two main functions -
Build the CAD's API instructions, which can be saved for later
Execution, where it catches the instance of the CAD software
running on the same computer and it builds the model.
The second part is restricted for the general public. Only our in-house users should be able to use it. However, they want to have an otherwise identical front-end and user experience.
The problem is, if they connect to the same engine as the public, which exists on our main server, then the engine will be looking for an instance of the CAD package on the same machine as itself - i.e the server, as stressed in the emboldened point above. What should happen is the engine finds the CAD instance running on the machine that the controlling UI is based on and it uses that for its target. I have spoke to the CAD API support and they say they do not know how to do that.
And so we get to my solution of providing an offline stand alone of my web service on each of the employees computers. This means the front-end will check at the start of the session if a localhost connection is available. If not it will use the main address, which takes it to my server. Otherwise it uses the local engine which will look perform the default behavior of looking for a CAD package on the same machine as itself. Because its locally installed that is now the right machine and it will find the CAD instance of the user successfully.
Final points:
The engine cannot be accessed by the UI directly as i am using
Unity3D for the front-end and there is .Net compatibility issues.
I need a completely self contained version of the software in the
future anyway, so eventually i have to deal with having the engine
accessed locally
I ended up using IISExpress. I got the user to install this and then get them to call a batch file installer i made which sets up the config file and moves my web project to the correct directory.

Whats the best way to get started with server virtualization?

We recently bought a new rack and set of servers for it, we want to be able to redeploy these boxes as build servers, QA regression test servers, lab re-correlation servers, simulation servers, etc.
We have played a bit with VMWare, VirtualPC, VirtualBox etc, creating a virtual build server, but we came across a lot of issues when we tried to copy it for others to use, having to reconfigure every new copy of the VM.
We are using Windows XP x86/x64 and Windows Vista x86/x64, so I had to rename the machine, join the domain etc for every new copy.
Ideally we just want to be able to add a new box, deploy a thin boot strap OS (Linux is fine here) to get the VM up an running, then use it.
One other thing we have limited to no budget, so free is best.
I would like to understand others experiences in doing the same thing.
FYI, I am not in systems IT, this we are group of software engineers trying to set this up.
Any links to good tutorials would be great.
The problem you're running into is the machine SID must be unique for each machine in a domain. Of course by copying an image you now break that unique constraint.
I'd suggest that you read the documentation for Sysprep in the reskit and Vista System Image Manager - your friends for XP/Win2k3 and Vista/Win2k8 respectively.
These tools enable to "reseal" your configured instance of the OS such that the next time it boots - it can prompt for information such as network configuration, machine names, admin user ID's, run scripts etc.
Also be aware that the licencing restrictions for Windows desktop clients are generally per image - not per server.
Using these tools with HyperV we created complete preconfigured instances of Win2k3 & Win2k8 that boot to finish installing Sharepoint - going further we used the diffing disks to overlay Visual Studio so our devs could use the production images for their work. It has radically changed our development process.
At this point our entire public website is run on HyperV with of 5 boxes running 15 images for a mix of soft and hard redundancy - they take several hundred million page views per week.
Another option for dealing with the SID probelm is NewSID. This is a simpler tool than sysprep, in that all it does is rename the machine and reassign the SID; if you don't need all the other features of sysprep this is a much easier tool to use.