Some of the challenges I often face when installing/upgrading an application are for instance:
- LAN and WAN links must not be overloaded
- Exclusions must be handled
- A phased roll-out must be used to minimize the risks/performance impact on the WAN
To be able to do a phased installation/upgrade for instance the computer name can be used, for instance collections could be created based on the last number in the computer name, UUID or MAC address as long as it’s spread between sites/departments. Of course many other criteria’s could be used but the computer name is perhaps the most appropriate because it is possible to inform the users that computers with a name ending with 1 and 2 will be upgraded on a specific day. I have created these collection as subcollections to a collection called Rollout, keeping them for themselves makes it easy to reuse them.
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.NetbiosName like “%2” or SMS_R_System.NetbiosName like “%3”
For the roll-out itself I create the following collections:
Upgrade list – computers that should be upgraded are added to this collection, for instance all computer in one of the collections based on computer names, or a specific computer that needs to be upgraded at a specific time because the user is for instance only in the office on Tuesdays. Empty queries which are limited to the Computer Names collections can be used to add computers in each of them, or by direct membership or specific AD-group.
Exclusion List – Computers that shouldn’t have the application upgraded can be placed here. This makes it much easier to add all other computers and have a simple overview of which computers are excluded.
Upgrade – the Collection that the actual upgrade is targeted to with a query that should do the following:
- Include only computers added to the Upgrade list
- Exclude the computers in the Exclusion list
- Hold the query used to select the computers that for instance have Office 2007 installed, if applicable.
The query I use in this example is limited to the “Microsoft Office 2010 Upgrade list” and contains the following query which excludes the computers in the “Microsoft Office 2010 Exclusion List”, “0010007B” should be replaced with the collection ID for the Exclusion list collection.
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.Active = 1 and SMS_R_System.ResourceId not in (select ResourceID from SMS_CM_RES_COLL_0010007B)
Adding and additional condition to only include computers with Office 2007 Enterprise Edition installed the following query could be added to the query above. It would look as follows in the Query designer, the query can be downloaded here Office_query
I hope this post can inspire you to create a suitable upgrade scenario for your organisation.