go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/id/platformid/win.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package platformid 5 6 import ( 7 "io" 8 9 "go.mondoo.com/cnquery/providers/os/connection/shared" 10 ) 11 12 const wmiMachineIDQuery = "SELECT UUID FROM Win32_ComputerSystemProduct" 13 14 func PowershellWindowsMachineId(conn shared.Connection) (string, error) { 15 cmd, err := conn.RunCommand("powershell -c \"Get-WmiObject -Query '" + wmiMachineIDQuery + "' | Select-Object -ExpandProperty UUID\"") 16 if err != nil { 17 return "", err 18 } 19 data, err := io.ReadAll(cmd.Stdout) 20 if err != nil { 21 return "", err 22 } 23 guid := string(data) 24 return guid, nil 25 } 26 27 type WinIdProvider struct { 28 connection shared.Connection 29 } 30 31 func (p *WinIdProvider) Name() string { 32 return "Windows Machine ID" 33 } 34 35 func (p *WinIdProvider) ID() (string, error) { 36 return windowsMachineId(p.connection) 37 }