Get exact Windows version with PowerShell Core
#Requires -Version 6.0 | |
<# | |
The MIT License (MIT) | |
Copyright (c) 2020 Jari Turkia (jatu@hqcodeshop.fi) | |
Permission is hereby granted, free of charge, to any person obtaining a copy | |
of this software and associated documentation files (the "Software"), to deal | |
in the Software without restriction, including without limitation the rights | |
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
copies of the Software, and to permit persons to whom the Software is | |
furnished to do so, subject to the following conditions: | |
The above copyright notice and this permission notice shall be included in all | |
copies or substantial portions of the Software. | |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
SOFTWARE. | |
#> | |
<# | |
.SYNOPSIS | |
Script to query exact Windows version | |
.DESCRIPTION | |
Output will contain the queried Windows product name, release and processor architecture. | |
#> | |
if (!$IsWindows) { | |
throw "This script works only in Windows!" | |
} | |
$product = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ProductName).ProductName | |
$releaseId = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" ` | |
-Name ReleaseId ` | |
-Erroraction 'silentlycontinue' | |
if ($releaseId) { | |
$release = $releaseId.ReleaseId | |
} | |
else { | |
$release = $None | |
} | |
$build = ([System.Environment]::OSVersion.Version).Build | |
# From: https://docs.microsoft.com/en-us/windows/win32/winprog64/wow64-implementation-details | |
switch ($env:PROCESSOR_ARCHITECTURE) { | |
"AMD64" { | |
$arch = "x64" | |
} | |
"IA64" { | |
$arch = $env:PROCESSOR_ARCHITECTURE | |
} | |
"ARM64" { | |
$arch = $env:PROCESSOR_ARCHITECTURE | |
} | |
"x86" { | |
$arch = $env:PROCESSOR_ARCHITECTURE | |
} | |
default { | |
$arch = $None | |
} | |
} | |
$version = $product | |
if ($release) { | |
$version += " release $release" | |
} | |
$version += " ($arch)" | |
$version += " build $build" | |
Write-Host $version |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment