Group-Policy
組策略中的 WMI 篩選器評估不正確
我有三台機器:ASAAD-0 MSN-LEED01 MSN-LEED02
在組策略中,我有一個名為 LEED 的 WMI 過濾器,如下所示:
SELECT * FROM Win32_ComputerSystem WHERE (Name != "MSN-LEED01" OR Name != "MSN-LEED02")
包含具有此篩選器的 GPO 的 OU 將應用於所有三台電腦。
在 ASAAD-0 上,當我執行 gpresult /h 時,我可以看到此過濾器的計算結果為 True,這是預期的。然而,在兩台 LEED 機器上,它仍然評估為 True,而它似乎應該評估為 False。
我嘗試了幾種不同的方法來驗證 Win32_ComputerSystem.Name 是正確的值。
如果我跳上 MSN-LEED02 並執行 Powershell 命令
Get-WmiObject Win32_ComputerSystem
,它會返回一些欄位,而 Name 欄位確實是 MSN-LEED02。但是,如果我打開 wbemtest,進入 Enum Classes,找到 Win32_ComputerSystem 並查看它的屬性,Name 值為 null。
我嘗試的最後一件事是使用這個第三方工具從上面測試過濾器。MSN-LEED01 和 MSN-LEED02 都返回 true,例如,(Name != MSN-LEED01) 應該為 false,因為名稱似乎等於 MSN-LEED01。
有人知道我在過濾器上做錯了什麼嗎?
將查詢中的“OR”替換為“AND”:
SELECT * FROM Win32_ComputerSystem WHERE (Name != "MSN-LEED01" AND Name != "MSN-LEED02")
但是,您可以在組策略管理的“委派”選項卡中添加電腦(或包含這些電腦的 AD 安全組),然後拒絕“應用組策略”,(如果要阻止,也可以拒絕“讀取”這些電腦應用組策略的“使用者”設置),它比 WMI 過濾器更有效且更易於維護。