Share via


How is the Hardware ID calculated?

Question

Friday, August 1, 2014 9:02 PM

I thought it used to be written down somewhere but I can't seem to find it...is there a writeup on the method for calculating the Hardware ID in ConfigMgr? 

SELECT Hardware_ID0 FROM dbo.v_R_System

John Nelson #2

All replies (6)

Friday, August 1, 2014 10:55 PM ✅Answered

Hmm, well it's not official and it was 2005...but it's something: http://myitforum.com/cs2/blogs/eholtz/pages/2839.aspx

"

The HardwareID is a new discovery property that is made up of:

  • The serial number & asset tag from system enclosure (taken from the WMI Win32_SystemEnclosure class)
  • The serial number of the motherboard (taken from the WMI Win32_Baseboard class)
  • The serial number of the BIOS (taken from the WMI Win32_BIOS class)
  • If the computer is not a laptop, the MAC address from first enabled adaptor (Win32_NetworkAdaptorConfiguration) is also used.

"

John Nelson #2


Friday, August 1, 2014 9:20 PM

Hi John,

I believe it is documented in MSDN, though that is from long lost memory, so take it for what it is worth. My question would be why do you care? Are you going to change how you do something just because you know how it is calculated?

Wally

Wally Mead


Friday, August 1, 2014 9:54 PM

The unfortunate reality of my work environment is that not all systems are managed by the same product, and there's some delay between when a new config management system is found and when it can be brought into management by CM.

My [possibly naïve] thought was that if I could calculate a hardware ID the same way against those other clients while we wait for them to get pulled into CM, I could accelerate the timeline for getting their data into my warehouse and then I can use that ID as a stable business key representing a physical machine.

John Nelson #2


Friday, August 1, 2014 10:09 PM

I don't know if that would work or not. I wanted to say that there was a date/time stamp as part of that ID, but I could be thinking of a different key we use.

Wally Mead


Friday, August 1, 2014 10:40 PM

Well, it works in my head anyway :)

My search-fu is failing me.  I just can't find any mention of how it's done other than a lot of C/C++/C# developers writing custom DLLS based on stupidity like the serial number of the disk and CPU.

John Nelson #2


Saturday, August 2, 2014 6:09 AM | 1 vote

A bit more detailed, but still of the SMS-times: http://support.microsoft.com/kb/837374/en-us

My Blog: http://www.petervanderwoude.nl/
Follow me on twitter: pvanderwoude