SOLVED

Autopilot info hash is time-salted?

Brass Contributor

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... 



2 Replies
best response confirmed by AlexPawlak (Brass Contributor)
Solution

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

@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 🙂 

1 best response

Accepted Solutions
best response confirmed by AlexPawlak (Brass Contributor)
Solution

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

View solution in original post