Upgrade Readiness in Windows Analytics provides an inventory of devices and applications for enrolled devices. We’ve had a lot of customers ask about the details of how this works, and this blog post is meant to answer those questions.

Who does the collection?

This data is collected by an OS component called “Appraiser”, which is built into Windows (require a KB to be installed on Windows 7/8.1 devices, per below).

After the initial scan it may take up to 72 hours before the device shows up in the UR portal, we are working to reduce this delay. If the device doesn’t communicate with the UR portal (upload any data) in 30 days, the device will be automatically removed from the UR portal. This is one more reason you should run the UR script monthly (more on this in the best practices section later..)



What data is collected?

Appraiser looks for apps installed on your devices as follows:

Scan the windows registry to find the Add/Remove/Program (ARP) entries for your applications, they are found in control panel.

Scans the standard windows directories such as program files, program files(x86) and program data.

By limiting the checks to these locations, Appraiser find most apps while minimizing performance impact on devices due to inventory collection.

A few key improvements we recently added to inventory collection:

Identify apps which are virtualized in your environment. A lot of our customers deploy apps through virtualization technologies such as App-V (Microsoft), Xen apps (Citrix) and Thin apps (VMware) in their ecosystem. If such apps create an ARP entry in control panel, their installation source is identified by appraiser component and shown in your OMS workspace. These applications now show up in Upgrade Readiness with their Name, Publisher, Version, the remaining last leg is to add a property to classify such apps as “Virtualized apps” is in the making and will be supported in the service soon.

Inventory data from all enterprise devices is now prioritized when we refresh data or request full sync from the clients. This feature will help to refresh inventory for analytics devices with higher reliability.



How often is the data collected?

Core Inventory (apps, drivers) data collection is triggered via a scheduled nightly task “Microsoft Compatibility Appraiser” which runs every 24 hours. This assumes the system is awake and idle for long enough period to complete the scan. If the device was found inactive we resume the scan on the next available opportunity. This data is only sent to Microsoft if the device is opted in for CDO (Commercial Data Opt-in) on Win7/8.1 or Basic level in Windows 10. The component also has in-built intelligence to send data only if there is a change in the state of a machine i.e. if new apps/drivers were installed after an initial full inventory of a system. A full sync is initiated automatically whenever appraiser is updated, or can be forced by running the deployment script.



How is Appraiser updated?

When you onboard to analytics by deploying Windows update KB’s on your Win 7/8.1/10 machines they have the latest appraiser updates to enable the service to show you comprehensive inventory of all your machines. Appraiser updates are shipped on a quarterly cadence. However, we do ship out of this cadence if there are important fixes needed in the component, that’s why the recommendation is to take quality updates every month. Here is how you can get the latest updates.

*On Windows 7 SP1 and Windows 8.1 the package updates are shipped as critical updates and have their own KB’s (2952664 and 2976978). They are released on the 2nd tuesday of the month.

*On Windows 10, appraiser component ships as part of the monthly latest cumulative updates. These updates have all the quality and security fixes which are critical for your devices and are released every 2nd tuesday of the month.



What are the best practices for getting accurate app inventory?

Take the latest updates as recommended above, a full sync is initiated when a new version of appraiser is installed, and it always keeps the component healthy.

If you are not taking these monthly security updates, then force a full sync on your machines monthly by running these two commands as System (via Configuration Manager or other management system): CompatTelRunner.exe -m:generaltel.dll -f:DoCensusRun CompatTelRunner.exe -m:appraiser.dll -f:DoScheduledTelemetryRun ent

Deploying and running the UR Script monthly also helps you understand the population of devices which are running stale versions of appraiser components. We always recommend having a higher version than minimum required for Windows Analytics. The script also runs the two commands above to force a full sync.

Common Myth:

When you enable CDO on Win 7/8.1 or Basic level on Win 10 on your machines to configure WA, a full inventory sync is not triggered automatically, so it is possible that you don’t see complete inventory in analytics. That’s why we recommend forcing a full sync by running the two commands manually or running the UR script monthly.

That’s why we recommend forcing a full sync by running the two commands above monthly.

Advanced Troubleshooting:

At times it is observed that even after completing all the onboarding steps and adhering to the best practices recommended above, machines don’t report inventory data. In past interactions with customers we found machines can have issues with sending all the inventory data. If you have a machine(s) that is missing any data then we recommend trying the following steps:

Delete the inventory cache located at: C:\Windows\appcompat\Programs\Amcache.hve You may need to run one or more of these commands from an elevated cmd window to delete the file.

sc stop aelookupsvc

sc stop pcasvc

sc stop dps

sc stop diagtrack

sc stop wuauserv

exe /End /TN "\Microsoft\Windows\RAC\RacTask"