Introduction
If you’re an administrator of Microsoft System Center Configuration Manager (SCCM / ConfigMgr) 2007, you might be interested in finding out what make / model of client & server systems you have, and how many of each unique value you have. Most people would probably simply pull up a ConfigMgr report, but did you know that there’s an automated way to get this information as well?
Using PowerShell
You’ll need the following to execute this simple script:
- A user account with access to the ConfigMgr provider
- The hostname of the ConfigMgr central site server
- The site code of the ConfigMgr central site
Once you’ve launched PowerShell under the appropriate account’s credentials, simply run this command:
Clear-Host $ComputerSystems = Get-WmiObject ` -Namespace rootsmssite_000 ` -ComputerName sccm01.mydomain.com ` -Class SMS_G_System_Computer_System $ComputerSystems ` | Group-Object -Property Manufacturer,Model ` | Where-Object { $_.Count -gt 5 } ` | Sort-Object -Property Count -Descending
If you get an error saying "An empty pipe element is not allowed" then make sure that there is not a space after one of the backticks. The backtick is the continuation character, and tells PowerShell to keep processing the command on the next line, and if there is a space after it, the interpreter will get confused.
If everything works as expected, you should see output similar to the following:
Count Name
—– —-
222 Dell Inc., OptiPlex 780
136 Dell Inc., OptiPlex GX620135 Dell Inc., OptiPlex 755
134 Dell Inc., OptiPlex 745
101 Dell Inc., OptiPlex GX280
There will also be a “group” property, which contains the actual .NET objects that were grouped into each line item.
Hope this helps!