Trying to get MachineGuid through _winreg but not working
python, windows, winreg
Solution
Your code is working fine on a 32bit Windows, if you want it to also run on a 64bit Windows, try this :
key = _winreg.OpenKey(
_winreg.HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Cryptography",
0,
_winreg.KEY_READ | _winreg.KEY_WOW64_64KEY
)
result = _winreg.QueryValueEx(key, "MachineGuid")
print result
Reference : Change 64bit Registry from 32bit Python
Problem
I can see the value in my registry editor and the path is `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography`, but can't get the value with the following codes: ``` import _winreg key = _winreg.OpenKey( _winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Cryptography" ) result = _winreg.QueryValueEx(key, "MachineGuid") print result ``` I got "The system cannot find the file specified", which is confusing because it's right there. Well, there's no problem retrieving other values with the almost exact same code: ``` key = _winreg.OpenKey( _winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\COM3" ) result = _winreg.QueryValueEx(key, "BuildType") print result ``` The output is: `(u'Free', 1)` Which part am I doing wrong? What can I do to get this `MachineGuid`?