Using SMBIOS GUID to import computer information for VMware guest
To import computer information into Configuration Manager for OS deployment you have to enter the computer name and then one or both of the following unique identifiers: MAC address or SMBIOS GUID, aka UUID. Many customers use the MAC address because it is shorter and typically more accessible. However, if the UUID is required this can seem difficult to obtain especially when the target systems are VMware guests. When the guest is initially created it is assigned a UUID which is stored in the VMX configuration file as the uuid.bios property. Here is an example line from the VMX file:
uuid.bios = “42 38 d4 b6 00 90 3e 75-94 06 b3 10 ea fa 2b 1e”
This does not look like a usual SMBIOS GUID in the standard (8)-(4)-(4)-(4)-(12) format. When the system boots and attempts to PXE boot, the same UUID is visible although formatted differently, for example:
Network boot from Intel E1000
Copyright (C) 2003-2008 VMware, Inc.
Copyright (C) 1997-2000 Intel CorporationCLIENT MAC ADDR: 00 50 56 B8 00 14 GUID 4238D4B6-0090-3E75-9406-B310EAFA2B1E
CLIENT IP: 192.168.1.100 MASK: 255.255.255.0 DHCP IP: 192.168.1.10
GATEWAY IP: 192.168.1.1
…
Looking at the actual SMBIOS GUID via the UUID property of the Win32_ComputerSystemProduct WMI class (or the comparable System UUID property on the ConfigMgr System Resource), it appears as:
UUID = “B6D43842-9000-753E-9406-B310EAFA2B1E”
The difference between these two (uuid.bios up above and UUID directly above), which are identical except for formatting, is explained in an older Remote Installation Services article on TechNet. The VMware VMX uses the “raw byte order” format while Windows and Configuration Manager use the “pretty print” format. (Thanks to Michael Kelley for that nugget of information.)
So taking a UUID from a VMware VMX to import into Configuration Manager for OS deployment requires some conversion. The attached script does a simple conversion; there may be a more elegant method relying upon the underlying mathematics of the UUID, but that’s beyond my current knowledge.
The script usage is as follows:
.\Convert-UUID.ps1 -rawUUID "<uuid>"
where <uuid> is formatted as follows:
01 23 45 67 89 ab cd ef-fe dc ba 98 76 54 32 10
such as used in the uuid.bios property of a VMX file. For example, the above rawUUID yields the following output:
67452301-ab89-efcd-fedc-ba9876543210
Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the Terms of Use .
Comments
- Anonymous
December 17, 2014
portable toshiba satellite U500 error (Not enough space in Runtime area !!. SMBIOS data will notbe available. press F1 to Resume - Anonymous
August 10, 2015
Appreciate the info, but this article is a little confusing...
Should we not just grab the uuid from wmi and use that? What is the advantage of converting it from the vmx entry? - Anonymous
November 26, 2015
The advantage of converting it from the vmx entry is the possibility to use it for scripted import to SCCM as a part of operation system deployment - Anonymous
November 26, 2015
an other way is to grap it from VCenter Inventory : http://stealthpuppy.com/retrieving-a-vms-uuid-from-vsphere/