From 2523dd6220e1320c9d91d5c4306097679fd05796 Mon Sep 17 00:00:00 2001 From: albertony <12441419+albertony@users.noreply.github.com> Date: Fri, 21 Jan 2022 15:30:06 +0100 Subject: [PATCH] version: report correct friendly-name for windows 10/11 versions after 2004 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 --- lib/buildinfo/osversion_windows.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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")