Extend the default Hardware Inventory to include Windows Setup/Upgrade related registry values
There are several registry keys which contain information about the currently installed Operating System as well as Installation/Upgrade history/errors/status information. These keys provide a valuable source of information that could be used for building reports/collections related to OS Deployment. One of the major barriers mentioned for not deploying Windows 10 Feature Updates from Windows 10 Servicing in the console is the lack of visibility/reporting available. Adding these registry keys to the default hardware inventory included in SCCM instead of having to customize inventory would make it easier to share reports/scripts/etc related to this data and could likely be built so that it could all be collected into a single table instead of several separate tables which result from current MOF customizations.
Examples of the keys (and sub keys in most cases) include:
HKEYLOCALMACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion - shows all current OS installation information including the ReleaseId which is not included in inventory today.
HKEYLOCALMACHINE\SYSTEM\Setup\Source OS * - a new date stamped key is created for each upgrade that is done on a machine. You can use this to build upgrade history reports and distinguish between upgrades and new builds.
HKEYLOCALMACHINE\SYSTEM\Setup\Upgrade - the DownLevelBuildNumber key shows build of the last OS that was upgraded from.
HKEYLOCALMACHINE\SYSTEM\Setup
HKEYLOCALMACHINE\SYSTEM\Setup\MoSetup
HKEYLOCALMACHINE\SYSTEM\Setup\MoSetup\Voatile - This key will show error codes for failed upgrades.
HKEYLOCALMACHINE\SYSTEM\Setup\MoSetup\SetupDiag - this key is created when you run SetupDiag on a box to check for failure codes.
HKEYLOCALMACHINE\SYSTEM\Setup\MoSetup\Tracking - logs the number of install attempts and failures.
We have been extending our inventory to included these keys and it has greatly simplified our upgrade and OSD reporting and remediation efforts.

3 comments
-
andrewjohnporter commented
Would be very useful!
-
Bryan Dam commented
I'd like to suggest the more generic case. Adam is proposing something specific here for Windows Setup. Fine and dandy but what if the bar was simply lowered for inventorying _any_ registry key/value? Eliminate the need for Reg2Mof or manual MOF changes in general.
In the same way we can import a local or remote WMI class allow us to import a registry key/value.
-
Gary Blok commented
100% Agree. This would be great for reporting, and allow us to better share reports. Right now we just have use Reg2Mof to grab some of this important info, but standardizing would be great.