Using Upgrade Analytics Deployment Script with ConfigMgr
A couple of months ago now, Microsoft announced their free service that will replace Application Compatibility Toolkit, called Upgrade Analytics (solution in OMS). If you’ve not yet taken a look at Upgrade Analytics, I highly recommend to do that. It provides a streamlined and easy to use cloud service where you upload your telemetry data from Windows, and back you get data for application and driver compatibility with Windows 10. This service is currently in preview, but Microsoft has been kind and provided us with what they call an Upgrade Analytics Deployment Script that can be executed on a Windows 7.1 SP1 or Windows 8.1 device. However, to successfully use this deployment script on devices managed by ConfigMgr, you’d need to make a couple of changes to the script. Also, it doesn’t install any of the required hotfixes for the specific operating system it’s being executed on.
I’ve written a small VB script (for support on Windows 7 SP1 devices that doesn’t have WMF 3.0+ installed, and I don’t think that should be a requirement prior to deploying the script for Upgrade Analytics), that improves the one that Microsoft has released. This script can run on Windows 7 SP1 or Windows 8.1, taking into account the architecture of the operating system and applies the correct hotfixes prior to run the telemetry script that sends data to Upgrade Analytics. However, there’s a catch with the hotfixes. Some of them requires a restart, and one in particular requires a restart before being able to install the other. A restart of the system is not being handled by the script though, however it will attempt to install any hotfix it can as silently as possible and defer any restarts. Therefore, it’s a good idea to setup the script that I’ve created as a scheduled assignment in ConfigMgr, so that it executes on a certain time each week for instance.
For those of you that are running a ConfigMgr Technical Preview environment, in the 1609 version, you may have noticed an that there’s an integration between ConfigMgr and Upgrade Analytics. If this new functionality makes it into ConfigMgr Current Branch 1610, you’ll be able to synchronize the “ready to upgrade” devices back into ConfigMgr from the cloud service. Being able to send your application and driver data to Microsoft, have them analyze it for you and then get a list of devices back that are ready to upgrade to Windows 10, now that’s what I call a useful integration between on-premise products and cloud services.
This post assumes that you’ve successfully added the Upgrade Analytics solution to your OMS workspace, that you are aware of how to enable the solution and locate the Commercial ID. If you’ve not yet performed those tasks, or want to know more about it, you should read the documentation available here.
Download required files for the Upgrade Analytics Deployment Script
First off, you need to download the Upgrade Analytics Deployment Script from Microsoft, which can be found on the link below:
Secondly, you’d need to download my modifications to the deployment script for Upgrade Analytics:
Prepare the scripts for usage
Extract the original files downloaded from Microsoft to your content library for ConfigMgr. Then extract and replace the files from my modified version of the script (you should only have to replace the RunConfig.bat file, and the UpgradeAnalyticsDeploymentScript.vbs should be added in the folder you’re extracting to). In order to deploy the script to devices in your organization, you’ll need to update the RunConfig.bat script with your Commercial ID from OMS and download a set of hotfixes. In regards to the hotfixes, they can all be downloaded from Microsoft Update Catalog. Below are the required hotfifxes depending on operating system:
|Windows 7 SP1||KB2952664
Download the hotfixes listed above required in your environment, and save each of them like the following (note the naming for each hotfix) in the same folder that you’ve extracted the scripts previously downloaded:
Amend the RunConfig.bat file and locate the line that says:
Replace ENTER_COMMERCIALID_HERE with the Commercial ID available in OMS and save the file.
Deploy to clients in ConfigMgr
There’s not really that much to it in regards to how to deploy the Upgrade Analytics Deployment Script in your environment. However, since the various hotfixes requires restarts, I’d suggest that you setup an scheduled assignment to run for instance once a week. This will ensure that once the computer has restarted after the hotfix installations, the script will start uploading the telemetry to Upgrade Analytics.
1. Create a Package in ConfigMgr with a program that has the following command line:
This would look something like below:
2. Make sure that the Environment tab for the Program is configured like below (you don’t want your users to get a bunch of command prompts opening once a week):
3. As for the Deployment settings for the Program, configure as follows if you wish to run it once a week (change the assignment schedule to suite your organization policies):
It’s important to note that sending telemetry to Upgrade Analytics is quite an easy task, however for the service to analyze your data can take time. The documentation states that it will take up to 48 hours, but it normally takes longer than that, so don’t worry if you don’t see any data from your clients after a couple of days. Eventually it will be populated in Upgrade Analytics. Once you’ve collected enough information and are happy with the data available in Upgrade Analytics, I’d suggest that you remove the deployment for the package. There’s no need in hammering the service with data that needs to be analyzed once you’re ready to get started with the Windows 10 migration.
Principal Consultant and Enterprise Mobility MVP since 2016. Nickolaj has been in the IT industry for the past 10 years specializing in Enterprise Mobility and Security, Windows devices and deployments including automation. Currently working for TrueSec as a Principal Consultant. Awarded as PowerShell Hero in 2015 by the community for his script and tools contributions. Creator of ConfigMgr Prerequisites Tool, ConfigMgr OSD FrontEnd, ConfigMgr WebService to name a few. Frequent speaker at conferences and user groups.