如何在 PowerShell 中獲取 Windows 版本
-
使用 PowerShell 中的
[System.Environment]
類別來獲取 Windows 版本 -
使用 PowerShell 中的
Get-ComputerInfo
Cmdlet 獲取 Windows 版本 -
使用 PowerShell 中的
Get-WMIObject
Cmdlet 搭配 WMI 類來獲取 Windows 版本 -
使用
systeminfo
傳統命令 PowerShell 獲取 Windows 版本 -
使用
Get-CimInstance
傳統命令 PowerShell 獲取 Windows 版本 - 結論

快速得知您的電腦擁有哪個 Windows 作業系統的方法是使用 winver
命令。在 Windows PowerShell 中,有多種方法可以獲得您的 Windows 版作業系統,本文將在此討論這些方法。
存在多種方法來達成此目的,每種方法都有其優勢和使用案例。本文將探索五種不同的方法來獲取 PowerShell 中的 Windows 版本。
每種方法都提供有關 Windows 環境的獨特見解,為管理員和腳本編寫者提供多功能工具以收集重要系統資訊。
使用 PowerShell 中的 [System.Environment]
類別來獲取 Windows 版本
在 PowerShell 中,您可以使用 [Environment]::OSVersion.Version
方法來檢索有關 Windows 版本的詳細資訊。此方法存取 Environment
類別中 OSVersion
屬性的靜態 Version
屬性,提供了一種直接訪問作業系統版本的方法。
範例代碼:
[System.Environment]::OSVersion.Version
當我們使用 [Environment]::OSVersion.Version
時,我們在訪問 Environment
類別的 OSVersion
屬性,該屬性提供有關作業系統環境的信息。具體而言,我們正在檢索此對象的 Version
屬性,該屬性包含有關 Windows 版本的詳細資訊。
此方法返回一個 System.Version
對象,該對象表示作業系統的版本,由主要和次要版本號的組合組成。通過訪問此對象的 Major
和 Minor
屬性,我們可以提取這些版本號,並在 PowerShell 腳本中根據需要使用它們。
輸出:
我們可以參考官方微軟文檔以交叉檢查您當前運行的 Windows 版本作業系統。
然而,如果您使用的是最新的作業系統,如 Windows 11 或 Windows Server 2019,則它不會顯示正確的版本,因為它仍會顯示主要版本 10,這表示 Windows 10 和 Windows Server 2016。因此,上述命令僅會在您運行 Windows 10 和 Windows Server 2016 及以下版本時顯示正確的值。
使用 PowerShell 中的 Get-ComputerInfo
Cmdlet 獲取 Windows 版本
在 PowerShell 中,您可以輕鬆地使用 Get-ComputerInfo
cmdlet 檢索有關 Windows 作業系統的詳細資訊。此 cmdlet 收集有關本地計算機系統的信息,包括作業系統名稱、版本和硬體抽象層 (HAL)。
範例代碼:
Get-ComputerInfo | Select-Object OSName, OSVersion, OsHardwareAbstractionLayer
當我們使用 Get-ComputerInfo
cmdlet 並將其管道至 Select-Object
時,我們正在檢索有關本地計算機系統的綜合信息。通過指定屬性 OSName
、OSVersion
和 OsHardwareAbstractionLayer
,我們正在選擇有關作業系統的具體細節,例如其名稱、版本和硬體抽象層 (HAL)。
此方法使我們能夠收集有關 Windows 環境的詳細資訊,這對於各種管理任務、故障排除或腳本編寫目的非常有用。通過訪問和顯示這些屬性,我們獲得了有關 Windows 系統的配置和規格的見解,有助於系統管理和維護。
輸出:
使用 PowerShell 中的 Get-WMIObject
Cmdlet 搭配 WMI 類來獲取 Windows 版本
我們也可以使用 Windows 管理工具 (WMI) 類來檢查您的作業系統當前版本。
範例代碼:
(Get-WmiObject -class Win32_OperatingSystem).Caption
當我們執行 (Get-WmiObject -class Win32_OperatingSystem).Caption
時,我們正在利用 Get-WmiObject
cmdlet 查詢 Windows 管理工具 (WMI) 的有關作業系統的信息。具體而言,我們的目標是 Win32_OperatingSystem
類,該類包含有關作業系統的詳細資訊。
通過訪問結果對象的 .Caption
屬性,我們正在檢索作業系統的名稱。此方法提供了一種直接通過 PowerShell 獲取 Windows 版本信息的簡單方法,使其適合各種腳本和管理任務。
輸出:
與 [System.Environment]
類和 Get-ComputerInfo
cmdlet 不同,WMI 對象在您使用最新版本時能正確顯示 Windows 作業系統版本。
使用 systeminfo
傳統命令 PowerShell 獲取 Windows 版本
我們還可以使用 systeminfo
傳統命令搭配 Windows PowerShell cmdlet 包裝器來輸出詳細的作業系統版本。通過將 systeminfo
與 PowerShell cmdlet 結合,您可以提取有關 Windows 版本的特定信息。
systeminfo /fo csv | ConvertFrom-Csv | select OS*, System*, Hotfix* | Format-List
當我們執行命令 systeminfo /fo csv
時,我們正在利用 systeminfo
命令行工具以 CSV 格式收集詳細的系統信息。
然後,我們使用 ConvertFrom-Csv
將 CSV 格式的輸出轉換為 PowerShell 對象。通過將結果管道輸入 Select
,我們過濾我們感興趣的屬性,特別是以 OS
、System
和 Hotfix
開頭的屬性。
最後,我們應用 Format-List
以格式化列表視圖呈現信息。
輸出:
使用 Get-CimInstance
傳統命令 PowerShell 獲取 Windows 版本
此 cmdlet 是 PowerShell 中的共通信息模型 (CIM) 基礎結構的一部分,允許您以標準化的方式查詢系統信息。通過針對 Win32_OperatingSystem
類別,您可以訪問作業系統名稱和版本等屬性。
(Get-CimInstance Win32_OperatingSystem) | Select-Object Caption, Version
當我們執行 (Get-CimInstance Win32_OperatingSystem) | Select-Object Caption, Version
時,我們正在利用 Get-CimInstance
cmdlet 檢索有關 Windows 作業系統的信息,來自於 Win32_OperatingSystem
類。該類代表作業系統的各種屬性。通過將結果管道輸入 Select-Object
,我們指定我們感興趣的屬性,即 Caption
(代表作業系統的名稱)和 Version
。
輸出:
結論
在 PowerShell 中,獲取 Windows 版本對於系統管理和腳本任務至關重要。我們已經探索了五種不同的方法來達成此目的:使用 [System.Environment]
類、Get-ComputerInfo
cmdlet、Get-WmiObject
cmdlet、systeminfo
命令和 Get-CimInstance
cmdlet。
每種方法具有不同的優勢,可能根據特定需求和場景而有所偏好。無論是通過 [System.Environment]
類直接訪問版本,還是使用 Get-ComputerInfo
或 Get-CimInstance
查詢詳細的系統信息,PowerShell 都提供了強大的工具來有效管理和監控 Windows 環境。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn