在 PowerShell 中获取 Windows 版本

Marion Paul Kenneth Mendoza 2023年1月30日 2022年5月16日
  1. 在 PowerShell 中使用 [System.Environment] 类获取 Windows 版本
  2. 在 PowerShell 中使用 Get-ComputerInfo Cmdlet 获取 Windows 版本
  3. 在 PowerShell 中使用带有 Get-WMIObject Cmdlet 的 WMI 类来获取 Windows 版本
  4. 使用 systeminfo 旧版命令
在 PowerShell 中获取 Windows 版本

获取你的计算机所使用的 Windows 操作系统的最快方法是使用 winver 命令。在 Windows PowerShell 中,有多种方法可以获取你的 Windows 版本操作系统,我们将在本文中讨论它们。

在 PowerShell 中使用 [System.Environment] 类获取 Windows 版本

如果你有权访问 .NET 库,则可以访问 [System.Environment] 类的 OSVersion 属性。

示例代码:

[System.Environment]::OSVersion.Version

输出:

Major  Minor  Build  Revision
-----  -----  -----  --------
10     0      22000  0

我们可能会参考微软官方文档来交叉引用你当前运行的当前 Windows 版本操作系统。

但是,如果你使用的是 Windows 11 或 Windows Server 2019 等最新操作系统,这将不会显示正确的版本,因为它仍会显示主要版本 10,它代表 Windows 10 和 Windows Server 2016。因此,上面的命令仅当你在下面运行 Windows 10 和 Windows Server 2016 时才会显示正确的值。

在 PowerShell 中使用 Get-ComputerInfo Cmdlet 获取 Windows 版本

单独使用 Get-ComputerInfo 会输出很多属性。我们只能从这组属性中调用 WindowsProductNameWindows VersionOSHardwareAbstractionLayer 属性来获取 Windows 操作系统版本。

示例代码:

Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer

输出:

WindowsProductName WindowsVersion OsHardwareAbstractionLayer
------------------ -------------- --------------------------
Windows 10 Pro    2009           10.0.22000.1

与之前的 [System.Environment] 类一样,如果你的操作系统使用 Windows 10 和 Windows Server 2016 及更低版本,则此 cmdlet 将显示正确的值。

有一个类似的命令可以检查 HKLM 注册表并显示 Get-ComputerInfo cmdlet 的 Windows 版本属性。

示例代码:

(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId

输出:

2009

上面显示的 Windows 版本属性就是我们所说的操作系统版本号。内部版本号 2009 代表 Windows 10 内部版本。这意味着该命令仅适用于 Windows 10 和 Windows Server 2016 及以下操作系统。

在 PowerShell 中使用带有 Get-WMIObject Cmdlet 的 WMI 类来获取 Windows 版本

我们还可能使用 Windows Management Instrumentation (WMI) 类来检查你的操作系统的当前版本。

示例代码:

(Get-WmiObject -class Win32_OperatingSystem).Caption

输出:

Microsoft Windows 11 Home

[System.Environment] 类和 Get-ComputerInfo cmdlet 不同,如果你使用的是最新版本,WMI 对象会正确显示 Windows 操作系统版本。

使用 systeminfo 旧版命令

我们还可以使用带有 Windows PowerShell cmdlet 包装器的 systeminfo 旧命令来输出详细的操作系统版本。

systeminfo /fo csv | ConvertFrom-Csv | select OS*, System*, Hotfix* | Format-List

输出:

OS Name             : Microsoft Windows 11 Home
OS Version          : 10.0.22000 N/A Build 22000
OS Manufacturer     : Microsoft Corporation
OS Configuration    : Standalone Workstation
OS Build Type       : Multiprocessor Free
System Boot Time    : 21/12/2021, 5:10:47 pm
System Manufacturer : ASUSTeK COMPUTER INC.
System Model        : ASUS TUF Gaming A15 FA506IC_FA506IC
System Type         : x64-based PC
System Directory    : C:\Windows\system32
System Locale       : en-us;English (United States)
Hotfix(s)           : 3 Hotfix(s) Installed.,[01]: KB5007040,[02]: KB5007215,[03]: KB5006755
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn