A common question that I often see asked within the Microsoft Forums and on the myITforum mailing list is, “I need to deploy application “XYZ” to all computers, but I don’t want to overload my SCCM environment, what can I do?” As I didn’t see a blog post addressing this topic, I decided to write one.
I Don’t Want to Overload My SCCM Environment!
In this blog post I’ll explain how a PowerShell script that I created will enable you to deploy an application to only 6.25% of your computers! I’ll talk more about why it’s 6.25% a bit later.
This PowerShell script creates a set of device collections using the computer’s SMSID/GUID. Everything from applications, software updates, etc., can be deployed to these collections that are created by the script so that you’ll never overload your SCCM environment!
How does this script work?
When a computer joins System Center Configuration Manager (SCCM), it receives a unique identifier from the SCCM server. This ID is called the SMSID or GUID.
By the way, in Microsoft’s older documentation SMSID is used a lot, and it is still called SMS Unique Identifier within the SCCM database. Since GUID can have many different meanings, to avoid any confusion, I will use SMSID throughout the rest of this blog post.
This unique ID is used every time a computer communicates with the SCCM server. When a device collection is either created or updated, the SMSID is one of the key identifiers used to identify the computer in the collection. When a deployment is sent to a device collection, only the SMSIDs listed within the collection will receive the deployment.
Note: In most cases if the computer gets re-installed with a new OS or the SCCM client agent is re-installed, the computer will receive a new SMSID.
Why is it important to know about the SMSID?
The SMSID is made up of HEX characters (0-9, A-F). These 16 different characters make up the assigned SMSID. SCCM sequentially assigns SMSIDs to each device as it registers with SCCM.
For example, if a computer’s ID is C5FB60A6-207C-4451-A018-278E9FB1BA35 (notice that the last character is 5) then the next computer will end in 6. Therefore you can predict that the next installed SCCM computers will have the following IDs:
If you group all computers with the last character of their SMSID as being the number 5, you will get approximately one out of every 16 computers or 1/16th or 6.25% of the total number of computers.
As I mentioned in the note above about re-installing the client or OS, this equation will not break-down perfectly to be 1/16th, but the more computers you have, then the less variance you will see.
In my small lab of 37 computers (see the screenshot above) each computer falls into one of the deployment device collections. Each device collection, due to my test lab’s size, varies from 0 to 6 computers.
Use this download link from the Enhansoft website to avoid any copying and pasting issues.
There are a few things to note about this script:
-Don’t forget to edit the site code.
-All collections are limited to All Desktop and Server Clients.
-All collections are updated 1-minute apart starting at 11 p.m.
With this PowerShell script solution I can guarantee that I’ll never overload my SCCM environment!
If you have any questions, please feel free to contact me @GarthMJ.
Do you have an idea for a blog post about a SCCM query or reporting topic? Let me know. Your idea might become the focus of my next blog post!