diff --git a/lib/buildinfo/osversion_windows.go b/lib/buildinfo/osversion_windows.go index c17ae1288..2f0a07a7d 100644 --- a/lib/buildinfo/osversion_windows.go +++ b/lib/buildinfo/osversion_windows.go @@ -39,9 +39,18 @@ func GetOSVersion() (osVersion, osKernel string) { } } - friendlyName := getRegistryVersionString("ReleaseId") - if osVersion != "" && friendlyName != "" { - osVersion += " " + friendlyName + if osVersion != "" { + // Include the friendly-name of the version, which is typically what is referred to. + // Until Windows 10 version 2004 (May 2020) this can be found from registry entry + // ReleaseID, after that we must use entry DisplayVersion (ReleaseId is stuck at 2009). + // Source: https://ss64.com/nt/ver.html + friendlyName := getRegistryVersionString("DisplayVersion") + if friendlyName == "" { + friendlyName = getRegistryVersionString("ReleaseId") + } + if friendlyName != "" { + osVersion += " " + friendlyName + } } updateRevision := getRegistryVersionInt("UBR")