1// +build windows 2 3package machineid 4 5import ( 6 "golang.org/x/sys/windows/registry" 7) 8 9// machineID returns the key MachineGuid in registry `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography`. 10// If there is an error running the commad an empty string is returned. 11func machineID() (string, error) { 12 k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Cryptography`, registry.QUERY_VALUE|registry.WOW64_64KEY) 13 if err != nil { 14 return "", err 15 } 16 defer k.Close() 17 18 s, _, err := k.GetStringValue("MachineGuid") 19 if err != nil { 20 return "", err 21 } 22 return s, nil 23} 24