We recently upgraded our SCCM 2012 server to SP1. I am now in the process of upgrading all the SCCM clients to the latest version (5.00.7804.1000). I use Group Policy to push the client and I wanted to add a WMI filter to the policy to filter out any systems that already have the correct client version. To do that I needed to know where to look for the client version in WMI on a local machine. PowerShell came to my rescue with this command:
Get-WmiObject -namespace root\ccm -class sms_client
Here’s a screenshot of the output I got from an up-to-date computer (note the version number):
Using that I was able to construct the following query for my WMI filter:
select * from SMS_Client where ClientVersion < "5.00.7804.1000"
I applied the filter to our SCCM client install policy and now it only runs on machines running client versions older than the one specified. Nice!
BONUS TIP: There are several ways to do the GPO-based install, I chose to go with running ccmsetup.exe as a startup script in Group Policy Management at the following location:
“Computer Configuration -> Policies -> Windows Settings -> Scripts (Startup/Shutdown)”
I set it up to run the following install string:
ccmsetup.exe /MP:<MySCCMServerName> SMSSITECODE=AUTO