One of the main reason why ConfigMgr is implemented in any infrastructure is to have SCCM Deploy Software to the client machines and that’s also one of the many tasks and ConfigMgr administrator has to take car of, in this post I will describe the fundamental steps for SCCM software Deployment.
SCCM Deploy software – fundamentals
Before dwelling in the deployment process I will briefly touch on the basics, there are actually three steps in the deployment process as follows
- Distribute Content – Make content available so that clients can access it
- Deployment – Deploy the application to to users and/or devices
- Install – The user or the device installs the deployed application
It has also to be noted in ConfigMgr 2012 there are actually two types of SCCM Software Deployment packages which generally go under the name of Legacy Packages and Modern Applications in nutshell the former refers to any “non-MSI” deployed package, imagine setup.exe, the latter refers to native packages deployed through an MSI package.
Deploying native MSI packages have some distinct advantages and whenever possible this is the preferred deployment method, while a in-depth discussion about the Application Model is outside the scope of the article you can read more about it here.
In this article I described the process of deploying a “modern” application through an MSI Package, I will use 7Zip but any other application will do equally well.
SCCM Deploy software – Distribute content
Before distributing content it is necessary to prepare the software source, aka the installer files, what I usually do is create a folder named Software or similar underneath which I create a folder structure to segregate the different packages, apart from keeping the software source in order I do this as when specifying a source folder for an application package ConfigMgr treats the folder where the installer resides as the top folder considering anything beneath it as essential to the deployment. I guess you see where this is leading, so my suggestion is keep your source folder in order. Below a screenshot of my source share
Once the source files are in place it’s time to create the application to do so open the admin console and head to Software –> Library –> Application Management –> Applications right click on applications and select Create Application which will start a wizard with the default setting of Automatically detect information about this application from installation files and where you can select the location of the MSI file that will be deployed
As you can see above I’ve specified the path to the 7Zip MSI fie and as the file is not digitally signed I simply clicked on yes on the warning page same will appear, for example, when deploying the Internet Explorer 11 MSI Package created with IEAK, once you click on yes ConfigMgr will import MSI package metadata that will be used for application deployment
Once application metadata has been imported you can specify various settings and comments about the package, note that the Installation Program will be automatically populated by ConfigMgr
Clicking next will open the summary page where you can review settings that have been specified for the application and finally start the application package creation
Before deploying the actual package to distribution points we will need to create a Deployment Type which we are going to do next
SCCM Deploy software – deployment types
Deployment types are at the heart of Flexible Application Deployment in a nutshell we can define multiple ways to deploy an application without actually worrying of the inner mechanics of how this will happen the only thing that really matter to us is the application package creation, let’ see an example.
7Zip comes in both 32 and 64 bit packages with previous versions of ConfigMgr this would have meant you had to create separate programs to target either 32 or 64 bit operating system (more often than not this meant also a separate package but that’s another story) in SCCM 2012 you can create the application only once and define multiple types of Deployments which will handle the software delivery.
In the Admin Console selecting the just created 7Zip package will display, at the bottom of the windows, a tab named Deployment Type where you can see the defined Deployment Types currently just one with no filters
We are now going to create a new deployment type that will be targeted to 32bit machines to do so right-click on the 7Zip package and select Create Deployment Type
In the Create Deployment Type wizard you will be guided through a familiar wizard all in all similar to the one we used to create the 7Zip application package just notice this time I’ve specified the 32-bit installer MSI File in the source path
As remaining pages of the wizard are identical to what shown so far I will not paste any screenshot here as it would be redundant, once the wizard is over you will find the new deployment type among the ones defined for the package here I have renamed the deployments for clarity
[su_note note_color=”#ffff96″ text_color=”#000000″ radius=”5″]Note: The order in which you specify deployment types and their priority is important as SCCM will process them from the highest priority one to the lowest so make sure to set your priorities accordingly.[/su_note]
Now that the deployment types are in place it is time to specify the Requirements which will be used by SCCM to identify if an application, or more exactly its deployment, can can be used on the machine where it being run or not, to do so right-click on the x86_64 deployment for 7zip select Properties –> Requirements tab in the window that will open then finally click on Add
In the window that will open you can specify requirements like minimum RAM to install the package, disk space, OU where the computer account is located or, as in this case, the OS and tis architecture as 7zip is compatible with almost any Windows version I’ve just picked up all Window x64 version
I have repeated the above steps for the x86 version of the package just specifying all “Windows 32 bit” machines so that all that remains to do is distribute content to distribution points.
Once the application package has been created and content distributed to an accessible distribution point the last, and actually easier, step is that of making clients aware of new software to install to start the process right-click on the 7zip package and select Deploy
In the Deployment Wizard you can chose to either deploy users or computers for this article I will be deploying a computer collection I have created for the purpose
In the Specify the content destination you will see that SCCM detects the content of the application as available on the distribution point we used in the previous step
In the Deployment Settings page you can select if the package will be available, so the user can choose if and when install it, or installed in a mandatory way
All remaining settings are self explanatory so I will just paste the pictures here for documentation purposes
[su_spoiler title=”Deploy Application Via PowerShell” style=”fancy”]
To deploy the application via PowerShell rather than using the console you can run the following command
Start-CMApplicationDeployment -Name "7-Zip 9.20" -CollectionName "7Zip Deployment"
To monitor the application deployment you can go to Monitoring –>Deployments where you can click the application want to monitor and check the deployment status
Alternatively you can go Assets and Compliance –> Device Collections and click on the collection you are deploying to on the Deployments tab you can monitor the status of the application deployment and completion percentage