GetOSVersion retrieves the version of the current operating system. For example: "windows 10.0.17763.1697 (Windows Server 2016 Datacenter)".
()
| 36 | // GetOSVersion retrieves the version of the current operating system. |
| 37 | // For example: "windows 10.0.17763.1697 (Windows Server 2016 Datacenter)". |
| 38 | func GetOSVersion() (string, error) { |
| 39 | k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE) |
| 40 | if err != nil { |
| 41 | return "", err |
| 42 | } |
| 43 | defer k.Close() |
| 44 | |
| 45 | productName, _, err := k.GetStringValue("ProductName") |
| 46 | if err != nil { |
| 47 | productName = "windows" |
| 48 | } |
| 49 | |
| 50 | ubr, _, err := k.GetIntegerValue("UBR") |
| 51 | if err != nil { |
| 52 | ubr = 0 |
| 53 | } |
| 54 | |
| 55 | major, minor, build := windows.RtlGetNtVersionNumbers() |
| 56 | |
| 57 | return fmt.Sprintf("windows %d.%d.%d.%d (%s)", major, minor, build, ubr, productName), nil |
| 58 | } |
no test coverage detected