CLI: Improve Windows (Server) version detection

This commit is contained in:
Michael Friedrich 2020-01-08 14:36:42 +01:00
parent 387c2c8b79
commit ff135b6385

View File

@ -1428,21 +1428,39 @@ static bool ReleaseHelper(String *platformName, String *platformVersion)
*platformName = "Windows"; *platformName = "Windows";
if (platformVersion) { if (platformVersion) {
*platformVersion = "Vista"; // https://stackoverflow.com/questions/53393150/c-how-to-detect-windows-server-2019
if (IsWindowsVistaSP1OrGreater()) // https://techthoughts.info/windows-version-numbers/
*platformVersion = "Vista SP1"; if (IsWindowsServer()) {
if (IsWindowsVistaSP2OrGreater()) // 2019 Server +
*platformVersion = "Vista SP2"; if (IsWindowsVersionOrGreater(10, 0, 1803)) {
if (IsWindows7OrGreater()) *platformVersion = "Server 2019 or greater";
*platformVersion = "7"; // 2016 Server
if (IsWindows7SP1OrGreater()) } else if (IsWindowsVersionOrGreater(10, 0, 1607)) {
*platformVersion = "7 SP1"; *platformVersion = "Server 2016";
if (IsWindows8OrGreater()) // 2012 R2
*platformVersion = "8"; } else if (IsWindowsVersionOrGreater(6, 3, 0)) {
if (IsWindows8Point1OrGreater()) *platformVersion = "Server 2012 R2";
*platformVersion = "8.1 or greater"; // 2012
if (IsWindowsServer()) } else if (IsWindowsVersionOrGreater(6, 2, 0)) {
*platformVersion += " (Server)"; *platformVersion = "Server 2012";
} else {
*platformVersion = "Server 2008 (EOL)";
}
} else {
if (IsWindows10OrGreater())
*platformVersion = "10 or greater";
else if (IsWindows8Point1OrGreater())
*platformVersion = "8.1";
else if (IsWindows8OrGreater())
*platformVersion = "8";
else if (IsWindows7SP1OrGreater())
*platformVersion = "7 SP1 (EOL)";
else if (IsWindows7OrGreater())
*platformVersion = "7 (EOL)";
else
*platformVersion = "Vista (EOL)";
}
} }
return true; return true;