Forum Discussion

AlexPawlak's avatar
AlexPawlak
Brass Contributor
Apr 15, 2019
Solved

Autopilot info hash is time-salted?

Hey folk!

I tried to collect Autopilot hash information from my device, and while it collects just fine, I ran into quite interesting issue - it seems to me, at least on my machine, that Device hardware Data from CIM class is somehow time-based. In a sense, it gives a slightly different hash each second? 

See here: 

$AutopilotInfo1 = (Get-WindowsAutoPilotInfo.ps1)."Hardware Hash";
Start-Sleep -Seconds 2;
$AutopilotInfo2 = (Get-WindowsAutoPilotInfo.ps1)."Hardware Hash";
$AutopilotInfo1 -eq $AutopilotInfo2;
If I remove the sleep, I get the equal info, but if there's at least 1 sec delay - hashes are slightly different. Is it pooused to be like that? It's not really a definition of a hash too... 



  • Hi AlexPawlak,

     

    The representation which you see is an encoded xml structure of the device which includes also a dateteime value and a special hardware data hash (OfflineDeviceId). That's why the "hash" gathered with the powershell script is always different every time when gathered.

     

    To decode the information you can use the oa3tool.exe from the Windows ADK (https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install) 

     

    it looks like this:

     

    <?xml version="1.0"?>

    <HardwareReport>

            <HardwareInventory>

                    <p n="ToolVersion" v="3" />

                    <p n="HardwareInventoryVersion" v="131" />

                    <p n="ToolBuild" v="10.0.16299.15" />

                    <p n="OSType" v="FullOS" />

                    <p n="OsCpuArchitecture" v="x64" />

                    <p n="OsBuild" v="10.0.16299.15" />

                    <p n="OsSystemTime" v="2017-11-02T15:26:32Z" />

                    <p n="OsLocalTime" v="2017-11-03T21:26:32+30:00" />

                    <p n="ProcessorModel" v="Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz" />

                    <p n="ProcessorPackages" v="1" />

                    <p n="ProcessorThreads" v="2" />

                    <p n="ProcessorCores" v="2" />

                    <p n="ProcessorHyperThreading" v="false" />

                    <p n="SmbiosRamArrayCount" v="1" />

                    <p n="SmbiosRamSlots" v="1" />

                    <p n="SmbiosRamErrorCorrection" v="None" />

                    <p n="SmbiosRamMaximumCapacity" v="2048" />

                    <p n="TotalPhysicalRAM" v="18446744073709551615" />

                    <p n="SmbiosFirmwareVendor" v="Microsoft Corporation" />

                    <p n="SmbiosSystemManufacturer" v="Microsoft Corporation" />

                    <p n="SmbiosSystemProductName" v="Virtual Machine" />

                    <p n="SmbiosSystemSerialNumber" v="4677-3739-9388-5445-1471-5011-93" />

                    <p n="SmbiosUuid" v="2423a5f2-0d8b-4e61-8aca-5be1eb53208c" />

                    <p n="SmbiosSkuNumber" v="None" />

                    <p n="SmbiosSystemFamily" v="Virtual Machine" />

                    <p n="SmbiosSystemVersion" v="Hyper-V UEFI Release v2.0" />

                    <p n="SmbiosBoardManufacturer" v="Microsoft Corporation" />

                    <p n="SmbiosBoardProduct" v="Virtual Machine" />

                    <p n="SmbiosBoardVersion" v="Hyper-V UEFI Release v2.0" />

                    <p n="ChassisType" v="0x03" />

                    <p n="InternalDiskCount" v="1" />

                    <p n="DeviceNumber" v="0" />

                    <p n="PrimaryDiskTotalCapacity" v="136" />

                    <p n="PrimaryDiskType" v="HDD" />

                    <p n="DiskSerialNumber" v="|Virtual Disk    |Msft    " />

                    <p n="OpticalDiskDriveType" v="true" />

                    <p n="PhysicalMedium" v="Unspecified" />

                    <p n="MacAddress" v="00:11:22:01:42:11" />

                    <p n="DisplayResolutionHorizontal" v="1024" />

                    <p n="DisplayResolutionVertical" v="768" />

                    <p n="DisplaySizePhysicalH" v="0" />

                    <p n="DisplaySizePhysicalY " v="0" />

                    <p n="DigitizerSupportID" v="IntegratedTouch, IntegratedPen, MultiInput" />

                    <p n="PowerPlatformRole" v="Desktop" />

                    <p n="Status" v="0x00000000" />

                    <p n="OfflineDeviceIdType" v="UEFI_VARIABLE_RANDOMSEED" />

                    <p n="OfflineDeviceId" v="MEyq3Ar1JdB6AVxl……..J1P8gPegxts=" />

                    <p n="DiskSSNKernel" v="|Virtual Disk    |Msft    " />

            </HardwareInventory>

    </HardwareReport>

     

    best,

    Oliver

2 Replies

  • Hi AlexPawlak,

     

    The representation which you see is an encoded xml structure of the device which includes also a dateteime value and a special hardware data hash (OfflineDeviceId). That's why the "hash" gathered with the powershell script is always different every time when gathered.

     

    To decode the information you can use the oa3tool.exe from the Windows ADK (https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install) 

     

    it looks like this:

     

    <?xml version="1.0"?>

    <HardwareReport>

            <HardwareInventory>

                    <p n="ToolVersion" v="3" />

                    <p n="HardwareInventoryVersion" v="131" />

                    <p n="ToolBuild" v="10.0.16299.15" />

                    <p n="OSType" v="FullOS" />

                    <p n="OsCpuArchitecture" v="x64" />

                    <p n="OsBuild" v="10.0.16299.15" />

                    <p n="OsSystemTime" v="2017-11-02T15:26:32Z" />

                    <p n="OsLocalTime" v="2017-11-03T21:26:32+30:00" />

                    <p n="ProcessorModel" v="Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz" />

                    <p n="ProcessorPackages" v="1" />

                    <p n="ProcessorThreads" v="2" />

                    <p n="ProcessorCores" v="2" />

                    <p n="ProcessorHyperThreading" v="false" />

                    <p n="SmbiosRamArrayCount" v="1" />

                    <p n="SmbiosRamSlots" v="1" />

                    <p n="SmbiosRamErrorCorrection" v="None" />

                    <p n="SmbiosRamMaximumCapacity" v="2048" />

                    <p n="TotalPhysicalRAM" v="18446744073709551615" />

                    <p n="SmbiosFirmwareVendor" v="Microsoft Corporation" />

                    <p n="SmbiosSystemManufacturer" v="Microsoft Corporation" />

                    <p n="SmbiosSystemProductName" v="Virtual Machine" />

                    <p n="SmbiosSystemSerialNumber" v="4677-3739-9388-5445-1471-5011-93" />

                    <p n="SmbiosUuid" v="2423a5f2-0d8b-4e61-8aca-5be1eb53208c" />

                    <p n="SmbiosSkuNumber" v="None" />

                    <p n="SmbiosSystemFamily" v="Virtual Machine" />

                    <p n="SmbiosSystemVersion" v="Hyper-V UEFI Release v2.0" />

                    <p n="SmbiosBoardManufacturer" v="Microsoft Corporation" />

                    <p n="SmbiosBoardProduct" v="Virtual Machine" />

                    <p n="SmbiosBoardVersion" v="Hyper-V UEFI Release v2.0" />

                    <p n="ChassisType" v="0x03" />

                    <p n="InternalDiskCount" v="1" />

                    <p n="DeviceNumber" v="0" />

                    <p n="PrimaryDiskTotalCapacity" v="136" />

                    <p n="PrimaryDiskType" v="HDD" />

                    <p n="DiskSerialNumber" v="|Virtual Disk    |Msft    " />

                    <p n="OpticalDiskDriveType" v="true" />

                    <p n="PhysicalMedium" v="Unspecified" />

                    <p n="MacAddress" v="00:11:22:01:42:11" />

                    <p n="DisplayResolutionHorizontal" v="1024" />

                    <p n="DisplayResolutionVertical" v="768" />

                    <p n="DisplaySizePhysicalH" v="0" />

                    <p n="DisplaySizePhysicalY " v="0" />

                    <p n="DigitizerSupportID" v="IntegratedTouch, IntegratedPen, MultiInput" />

                    <p n="PowerPlatformRole" v="Desktop" />

                    <p n="Status" v="0x00000000" />

                    <p n="OfflineDeviceIdType" v="UEFI_VARIABLE_RANDOMSEED" />

                    <p n="OfflineDeviceId" v="MEyq3Ar1JdB6AVxl……..J1P8gPegxts=" />

                    <p n="DiskSSNKernel" v="|Virtual Disk    |Msft    " />

            </HardwareInventory>

    </HardwareReport>

     

    best,

    Oliver

    • AlexPawlak's avatar
      AlexPawlak
      Brass Contributor

      Oliver Kieselbach Thank you for explanation! I wish these properties were exposed in CIM Namespace directly, but I guess I'll have to find machine identier otherwise for a side project I'm working :-)