Hello
I am thinking of using the users BIOS/Motherboard Serial Number to uniquely identify a user (the application runs on Windows OS). When I refer to the BIOS/Motherboard Serial Number I am referring to the serial number returned when you type in: wmic BIOS get SerialNumber
I have previously attempted to use the Hard Drive serial number to uniquely identify a user but WMI is notoriously unreliable. For example; if you are running your .exe as an elevated process you will get a different Hard Drive serial number back from WMI. Also as crazy as this sounds, I have had 2 different Windows 8 machines change their Hard Drive serial no. on me when the Hard Drives were not changed at all - I'm not crazy this really happened - I realise there's no better way for people to think you're crazy than saying 'I'm not crazy' but putting that aside - do you know if I will experience these same issues with the BIOS/Motherboard' Serial Number?
Some queries
- Can the user change this serial number? Either using third party applications or through Windows.
- According to this forum post, not all vendors supply a motherboard UUID so I cannot use this to uniquely identify the user. Do venders mostly/always supply/fill out the BIOS/Motherboard Serial Number or will I also find some computers dont have a serial number?
- I have tried to uniquely identify a user using the Hard Drive's Serial Number. But I have run into the issue that the serial number can change and that Windows API is unreliable and can return different values. Do you know if I may experience the same issue for the BIOS/Motherboard's Serial Number?
- Can a standard process (Standard Windows User) retrieve the BIOS/Motherboard Serial Number? Or does the process need to be elevated (Admin User)?
- What would happen if the user has a virtual machine?
Just to confirm the BIOS is the motherboard, correct? I am a little unclear because I thought the BIOS is the simple software installed on the motherboard.