Non-Unique UUID
Non-Unique UUID's
Every client is identified in the database with its UUID (Universal Unique IDentifier) which is said to more rare than a GUID (Only Global Unique Identifier). The UUID is 'melted' into the Motherboard during production and can be extracted through code.
Unfortunately, sometimes the extracted UUID is not unique, i.e. multiple computers may have the same UUID. This is of course due to a faulty production process or simply because the computer is too old and was never given a UUID during manufacturing.
To overcome this problem, several of the scripts fetching the UUID from the computer has been using a hardcoded list of known non-unique UUIDs.
Here is a list of the non-unique UUIDs we have located so far:
- "00000000-0000-0000-0000-000000000000"
- "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF"
- "FEFEFEFE-FEFE-FEFE-FEFE-FEFEFEFEFEFE"
- "03000200-0400-0500-0006-000700080009"
- "07090201-0103-0301-0807-060504030201"
- "56F49712-FFFF-FFFF-FFFF-FFFFFFFFFFFF"
- "93309712-FFFF-FFFF-FFFF-FFFFFFFFFFFF"
- "50FB9712-FFFF-FFFF-FFFF-FFFFFFFFFFFF"
- "61F39712-FFFF-FFFF-FFFF-FFFFFFFFFFFF"
- "DC698397-FA54-4CF2-82C8-B1B5307A6A7F"
- "52309712-FFFF-FFFF-FFFF-FFFFFFFFFFFF"
- "8E275844-178F-44A8-ACEB-A7D7E5178C63"
- "890E2D14-CACD-45D1-AE66-BC80E8BFEB0F"
- "00020003-0004-0005-0006-000700080009"
Currently, they are being used in
- Win Pe Inventory
- CapaInstaller Scripting Library
- Capalib
- Agent Health Check
- OSD Library (Via Capalib)
- OSDGUI
- CapaInstallerAgentSetup.exe
The scripts have now been changed to search for a (FalseUUIDs.)XML file with UUIDs, extracted from the SQL server, and maintained form the actions menu of the System plugin. Since the list of False UUIDs grows every now and then, it is now possible to maintain the list with new discoveries without having to change the script code. When the content is changed in the system plugin, the replicator extracts and rewrites the data into the XML file at the container and PE Inventory job from where it is loaded every time the scripts are being run.
Despite the new functionality, the old list of hard-coded UUIDs is kept as a backup option in cases where the XML file cannot be found/read properly.
In addition to this, the new list can handle wildcards. As shown in the above list of UUIDs there are four (five) UUIDs that have much in common. So much, in fact, that it is possible that a new instance of '*-FFFF-FFFF-FFFF-FFFFFFFFFFFF' is likely to occur at some time. The new hardcoded list looks like this;
- "00000000-0000-0000-0000-000000000000"
- "*-FFFF-FFFF-FFFF-FFFFFFFFFFFF"
- "FEFEFEFE-FEFE-FEFE-FEFE-FEFEFEFEFEFE"Â
- "03000200-0400-0500-0006-000700080009"
- "07090201-0103-0301-0807-060504030201"
- "DC698397-FA54-4CF2-82C8-B1B5307A6A7F"
By using the wildcard, the scripts are already geared toward this situation in the future, instead of us having to alter all scripts for every new occurrence.