Windows-Server-2012
辨識 Windows 2012 Server 核心
我想檢測是否已使用 WMI 將 2012 伺服器設置為核心安裝。較早的問題似乎表明我可以從 Win32_OperatingSystem 獲取 OperatingSystemSKU。我的 Windows 2012 Core 系統報告的 OperatingSystemSKU 為 7。來自另一個問題的文章似乎表明是 PRODUCT_STANDARD_SERVER,如果有核心安裝,我應該期望看到 PRODUCT_STANDARD_SERVER_CORE 的值為 0x0000000D。
我在這裡想念什麼。我最終想創建一個策略並使用項目級別目標僅將該策略應用於 Windows 2012 Server Core 安裝。
PS C:\Users\zoredache\Documents> gwmi -Query "select OPeratingSystemSKU,Version,ProductType from Win32_OperatingSystem" __GENUS : 2 __CLASS : Win32_OperatingSystem __SUPERCLASS : __DYNASTY : __RELPATH : Win32_OperatingSystem=@ __PROPERTY_COUNT : 3 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : OperatingSystemSKU : 7 ProductType : 2 Version : 6.2.9200
在 PowerShell 中:
Get-WMIObject Win32_OptionalFeature | where Name -eq 'Server-Gui-Shell' | Select InstallState
在完整伺服器上返回1 ,在伺服器核心安裝上返回2 。
編輯:
雖然我上面的回答是正確的,但它有兩個問題:
- 在工作站上使用此命令時,它不會返回任何內容,因此您必須為此添加額外的檢查。
- 它很慢,當我嘗試它時,它花了 600 到 3500 毫秒。
所以更實用的方法是只檢查某個文件是否存在:
(Test-Path "$env:windir\explorer.exe")
$false
對於伺服器核心安裝和$true
所有其他安裝,這將返回,並且執行需要一毫秒。