Apr 15 2019 05:04 AM
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...
Apr 15 2019 08:31 AM - edited Apr 15 2019 08:32 AM
SolutionHi @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
Apr 15 2019 08:40 AM
@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 🙂
Apr 15 2019 08:31 AM - edited Apr 15 2019 08:32 AM
SolutionHi @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