So this morning I was checking up on the status of some client upgrades after installing the latest 1710 hotfix. WMI on each machine had updated to reflect the latest client versions, however most machines hadn’t reported back to ConfigMgr so they were still listed as the older version. Being impatient, I wrote a script that I could use with SCCMs ‘Run Script‘ feature (available as a pre-release feature from version 1706) that would scrape WMI on each machine locally and report back the client version… simple, but awesome!
The script is as follows:
############################################################# # # Author: Jack O'Connor # Website: https://github.com/JackOconnor21 # Modified By: Your name here... # Description: Simple script to use on a local machine or via SCCMs # 'run script' feature to find the client version of a machine # in the event SCCM has not yet updated the machine records. # # Edit the $CurrClientVer variable to reflect the latest client version # which is what we will test against. # ############################################################## $CurrClientVer = "5.00.8577.1115" $MyClientVer = (Get-WMIObject -Namespace root\ccm -Class SMS_Client).ClientVersion If ($MyClientVer -eq $CurrClientVer) { Write-Host "Up to date" -ForegroundColor Green } Else { Write-Host "Out of date ($MyClientVer)" -ForegroundColor Red }
The idea is you add the new client version number into the $CurrClientVer and the script will check WMI on each machine and match the client version against that – if it matches then we get an “Up to date” output, but if it does not we get an “Out of date” output followed by the actual client version on that machine.
You can run this script on any collection you like, I chose to run it on my “System Health | Clients Active” collection, which gave me the feedback pictured below.