Getting ConfigMgr 2012 clients updated and under control with collections

So you have completed the upgrade from ConfigMgr 2012 SP1 to ConfigMgr 2012 R2 successfully, maybe even applied the latest cumulative updates as well for ConfigMgr 2012 R2. You need to get your clients upgraded, so you rolled the CU client update out but noticed that you are getting high levels of failure. After looking at it, realized that you still have a lot of ConfigMgr 2012 SP1 clients out there and possibly mixed versions of clients in-between depending on how long your over all upgrade took.

A lot of people do not realize that ConfigMgr 2012 SP1 clients cannot have ConfigMgr 2012 R2 Cumulative updates applied to them because they are the wrong product version. Its always best practice, any time you upgrade a CU or a entire revision of a product, to promptly get your clients up-to-date as well so not to find your self in this scenario. If you do, never fear, help is easy and a few collections away. Creating and using the collections to collect the machine objects based on version, allow you to organize, monitor, update and even push clients getting your control back on your environment.

Creating collections to gather all the machines in the environment with different client versions can be done in a couple of ways to help assist with deployments \ upgrades of the clients. Option A which is using Collection Criteria or Option B which is using Custom Queries can be found below with steps to perform each. There are many different queries out there you can customize and find that will allow you to get client machine objects into a collection based on version, in these examples I am going with the basics because its really all you need to get the job done.

Version Chart:

Release/Update

Version

Build

ConfigMgr 2012 RTM

5.00.7711.0000

7711

ConfigMgr 2012 SP1

5.00.7804.1000

7804

ConfigMgr 2012 SP1 CU1

5.00.7804.1202

7804

ConfigMgr 2012 SP1 CU2

5.00.7804.1300

7804

ConfigMgr 2012 SP1 CU3

5.00.7804.1400

7804

ConfigMgr 2012 SP1 CU4

5.00.7804.1500

7804

ConfigMgr 2012 SP1 CU5

5.00.7804.1600

7804

ConfigMgr 2012 R2

5.00.7958.1000

7958

ConfigMgr 2012 R2 CU1

5.00.7958.1203

7958

ConfigMgr 2012 R2 CU2

5.00.7958.1303

7958

ConfigMgr 2012 R2 CU3

5.00.7958.1401

7958

ConfigMgr 2012 R2 CU4

5.00.7958.1501

7958

 

Steps:

Option A, Using Collection Criteria:

1. Open the ConfigMgr 2012 Console

2. Navigate to Assets and Compliance \ Device Collections

3. Right click Device Collections, select Folder, then select Create Folder

4. Name the folder Client Upgrades (unless you prefer another name)

5. Expand Device Collections, right click the folder you just created and then select Create Device Collection

6. On the General dialog, enter the name for the collection, click browse next to Limiting Collection

6.a On the Select Collection dialog, select the All Desktop and Servers Clients, click OK

6.b Click the Next button

6.c On the Membership Rules dialog, click Add Rule, then select Query Rule

6.d On the Query Rule properties, enter the name, and then click Edit Query Statement button

6.e On the Query Statement Properties, click the Criteria Tab

6.f On the Criteria Tab, click the Yellow Asterisk

6.g On the Criterion Properties dialog, click the Select... button

6.h On the Select Attribute dialog, click the Attribute class drop down, select Configuration Manager Client State

6.i On the Select Attribute dialog, click the Attribute drop down, select Version

6.j On the Select Attribute dialog, click OK

6.k On the Criterion Properties dialog, assure Operator is set to "is equal to"

6.l On the Criterion Properties dialog, set the value to the version you are querying for (example 5.00.7958.1501)

6.m On the Criterion Properties dialog, click OK

6.n On the Query Statement Properties dialog, click OK

6.o On the Query Rule Properties dialog, click OK

7. On the Membership Rules dialog, check the "Use incremental updates for this collection" box (see note), click Next

 

Note: Please caution when using the Use incremental updates for this collection option, as it will cause the collection to evaluate membership every five minutes. This can become an issue when you have over 200 collections in your ConfigMgr 2012 environment with this option enabled. Follow this link for more information:

https://technet.microsoft.com/en-us/library/gg699372.aspx look under Do not use incremental updates for a large number of collections.

 

8. On the Summary dialog, click Next

9. On the Completion dialog click Close

 

Please give queries appropriate time to update their memberships, initially depending on how many clients you have in the environment I would give it at least a couple of minutes before you do  refresh on the collection.

 

Option B, Using Custom Queries:

1. Open the ConfigMgr 2012 Console

2. Navigate to Assets and Compliance \ Device Collections

3. Right click Device Collections, select Folder, then select Create Folder

4. Name the folder Client Upgrades (unless you prefer another name)

5. Expand Device Collections, right click the folder you just created and then select Create Device Collection

6. On the General dialog, enter the name for the collection, click browse next to Limiting Collection

6.a On the Select Collection dialog, select the All Desktop and Servers Clients, click OK

6.b Click the Next button

6.c On the Membership Rules dialog, click Add Rule, then select Query Rule

6.d On the Query Rule properties, enter the name, and then click Edit Query Statement button

6.e On the Query Statement Properties dialog, click the Show Query Language button

6.f On the Query Language, depending on which collection you are making, clear the current statement in the Query Statement window

6.g Copy and paste the code from below into the Query Statement window, and then click OK

6.h Click the OK button

7. On the Membership Rules dialog, check the "Use incremental updates for this collection" box (see note), click Next

 

Note: Please caution when using the Use incremental updates for this collection option, as it will cause the collection to evaluate membership every five minutes. This can become an issue when you have over 200 collections in your ConfigMgr 2012 environment with this option enabled. Follow this link for more information:

https://technet.microsoft.com/en-us/library/gg699372.aspx look under Do not use incremental updates for a large number of collections.

 

8. On the Summary dialog, click Next

9. On the Completion dialog click Close

 

Please give queries appropriate time to update their memberships, initially depending on how many clients you have in the environment I would give it at least a couple of minutes before you do  refresh on the collection.

 

Queries to use with steps above:

(Configuration Manager 2012 SP1 versions)

ConfigMgr 2012 SP1 Clients for version .1000 (no CUs):

* Query starts below this line =========

 

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 from SMS_R_System where SMS_R_System.ClientVersion = "5.00.7804.1000"

 

* Query stops above this line =========

 

ConfigMgr 2012 SP1 Clients for version .1202 (CU1):

* Query starts below this line =========

 

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 from SMS_R_System where SMS_R_System.ClientVersion = "5.00.7804.1201"

 

* Query stops above this line =========

 

ConfigMgr 2012 SP1 Clients for version .1300 (CU3):

* Query starts below this line =========

 

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 from SMS_R_System where SMS_R_System.ClientVersion = "5.00.7804.1300"

 

* Query stops above this line =========

 

ConfigMgr 2012 SP1 Clients for version .1500 (CU4):

* Query starts below this line =========

 

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 from SMS_R_System where SMS_R_System.ClientVersion = "5.00.7804.1500"

 

* Query stops above this line =========

 

ConfigMgr 2012 SP1 Clients for version .1600 (CU5):

* Query starts below this line =========

 

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 from SMS_R_System where SMS_R_System.ClientVersion = "5.00.7804.1600"

 

* Query stops above this line =========

 

(Configuration Manager 2012 R2 versions)

ConfigMgr 2012 R2 Clients for version .1000 (no CUs):

* Query starts below this line =========

 

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 from SMS_R_System where SMS_R_System.ClientVersion = "5.00.7958.1000"

 

* Query stops above this line =========

 

ConfigMgr 2012 R2 Clients for version .1203 (CU1):

* Query starts below this line =========

 

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 from SMS_R_System where SMS_R_System.ClientVersion = "5.00.7958.1203"

 

* Query stops above this line =========

 

ConfigMgr 2012 R2 Clients for version .1303 (CU2):

* Query starts below this line =========

 

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 from SMS_R_System where SMS_R_System.ClientVersion = "5.00.7958.1303"

 

* Query stops above this line =========

 

ConfigMgr 2012 R2 Clients for version .1401 (CU3):

* Query starts below this line =========

 

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 from SMS_R_System where SMS_R_System.ClientVersion = "5.00.7958.1401"

 

* Query stops above this line =========

 

ConfigMgr 2012 R2 Clients for version .1501 (CU4):

* Query starts below this line =========

 

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 from SMS_R_System where SMS_R_System.ClientVersion = "5.00.7958.1501"

 

* Query stops above this line =========

Once you have these collections created, you can deploy Cumulative Updates to them, push client installations to them and use them to monitor the numbers for each client version in your environment as you upgrade them.