If you consider that a UUID is 128 bits (typically represented as 32 hex characters, but is represented as a 16 character string in your result), there is a way to parse the result in Windows to get what you want out of it. Taking the value you received and casting it to hexadecimal you will get all the hex characters of the UUID, just not in the same order you’re expecting.
The SMBIOS reference specification has information on how the bytes are stored under “System - UUID” (section 7.2.1). See: http://dmtf.org/sites/default/files/standards/documents/DSP0134_2.8.0.pdf
In short - the first four bytes, the following 2 bytes, and the 2 bytes after that are all represented in little-endian byte encoding. If you flip each group around and add a couple of hyphens the end result will be the value you’re expecting:
Q: (first 2 of following text of position 6 of it & first 2 of following text of position 4 of it & first 2 of following text of position 2 of it & first 2 of following text of position 0 of it & “-” & first 2 of following text of position 10 of it & first 2 of following text of position 8 of it & “-” & first 2 of following text of position 14 of it & first 2 of following text of position 12 of it & “-” & first 4 of following text of position 16 of it & “-” & following text of position 20 of it) of concatenation “” of (it as hexadecimal) of “%80v%ade]%13%e3%11%afD%88Q%fbkP%84” as uppercase = “65AD7680-135D-11E3-AF44-8851FB6B5084”
A: True
Sourcing the UUID in Windows without WMI:
(first 2 of following text of position 6 of it & first 2 of following text of position 4 of it & first 2 of following text of position 2 of it & first 2 of following text of position 0 of it & “-” & first 2 of following text of position 10 of it & first 2 of following text of position 8 of it & “-” & first 2 of following text of position 14 of it & first 2 of following text of position 12 of it & “-” & first 4 of following text of position 16 of it & “-” & following text of position 20 of it) of concatenation “” of (it as hexadecimal) of characters of (value “uuid” of structures “system_information” of smbios as string) as uppercase
To get the UUID for a Mac you would use:
string “IOPlatformUUID” of dictionary of devicetree plane of iokit registry
I haven’t taken a look at this on the various *nix distributions yet, but if the smbios inspector doesn’t exist or doesn’t have the UUID I would think something exists under /dev on each platform that can be inspected… in the end you would simply have to take each platform’s relevance, wrap them in a collection of if-then-else statements and store it in one property.