Recently I reinstalled ConfigMgr server in my company and was looking for an easy method to upgrade all Configuration Manager clients to 4.00.6487.2000 version.
Put some notes on the table and finally made the following plan:
- Create a report that counts all client versions. (This is optional, just for informational purposes).
Report query is:
SELECT TOP (100) PERCENT Client_Version0 AS [ConfigMgr client version], COUNT(Client_Version0) AS Total
FROM dbo.v_R_System GROUP BY Client_Version0, Client0 HAVING (Client0 = 1)
ORDER BY Total DESC, [ConfigMgr client version]
- Create a collection (“Older Clients” for example) with all system resources with a client version not 4.00.6487.2000.
Collection query is:
SELECT SMS_R_SYSTEM.ResourceID, SMS_R_SYSTEM.ResourceType, SMS_R_SYSTEM.Name, SMS_R_SYSTEM.SMSUniqueIdentifier, SMS_R_SYSTEM.ResourceDomainORWorkgroup, SMS_R_SYSTEM.Client
WHERE SMS_R_System.ClientVersion != "4.00.6487.2000"
This way, system resources with older client version will be members of this collection.
- Created a package and program with ConfigMgr client upgrade with custom command line parameters.
Program command line is:
CCMSETUP.EXE /noservice SMSSITECODE=CFM SMSCACHESIZE=1024 SMSSLP=BLAH.DOMAIN.COM SMSMP=BLAH.DOMAIN.COM RESETKEYINFORMATION=TRUE
- Advertised it to “Older Clients” collection.
Now, as system resources with older client version are members of this collection they will receive the advertisement and will silently install the latest ConfigMgr client.
When the collection will have no system resources, I will know that all clients are upgraded. Also, I can check this by opening the same report from any browser on any computer.