在 PowerShell 中獲取 Windows 版本

Marion Paul Kenneth Mendoza 2023年12月11日
  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