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 Corporation
CLIENT 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: