前言
簡單說,本文的出現是因為最近遇到了在 VDI 虛擬桌面環境中,雖然已經設定 Windows GPO 群組原則來套用相關機制,但卻碰到了個難題。因為環境當中實體主機也有加入 Windows AD 網域,且 VDI 虛擬桌面環境中因為要提升使用者操作體驗,所以有導入「漫遊使用者設定檔 (Roaming User Profile)」機制。然而卻產生一個難題,當實體主機及 VDI VM 虛擬主機的 GPO 發生衝突時非常難以處理,舉例來說 在 VDI 虛擬桌面環境中,為了避免使用者不小心將 VDI VM 虛擬主機關機,增加 vSphere ESXi 虛擬化平台不必要的工作負載,因此在 GPO 中設定當登入後,按下左下角的開始圖示後只會剩下「登出」選項,但是這樣的 GPO 設定會造成登入實體主機時的困擾。
因此,本文主要實作的項目是,透過「WMI 篩選器 (WMI Filter)」的過濾機制,當使用者登入的是 VDI VM 虛擬主機時,才會套用該 GPO 群組原則。若是使用者登入實體主機時,則「不」會套用GPO 群組原則。
實作環境
- VMware Horizon View 5.1 (VDI 虛擬化平台)
- Windows Server 2008 R2 (Windows AD / GPO)
- Windows 7 (VDI VM、實體主機)
安裝及設定
測試 WMI 篩選器功能
因為本文主要處理的部份是,希望實體主機「不」要套用到 VDI VM 虛擬主機的 GPO 群組原則,所以透過 WMI 篩選器內「ComputerSystem \ Model」剛好可以過濾出這樣的需求 (詳細語法請參考 Microsoft MSDN - Win32 Provider)。要測試 WMI 篩選器的語法 ,其實有很多種方式: 命令提示字元、PowerShell、WMI Code Creator命令提示字元
您可以登入 VDI VM 虛擬主機,開啟命令提示字元後輸入指令「wmic ComputerSystem get model」,便可以得到 VDI VM 虛擬主機的 Model 資訊,此實作環境為「VMware Virtual Platform」。
PowerShell
您可以登入 VM 虛擬主機,開啟 PowerShell 後輸入指令「gwmi -query 'Select * From Win32_ComputerSystem'」,便可以得到 VDI VM 虛擬主機的 Model 資訊,此實作環境為「VMware Virtual Platform」。
WMI Code Creator
您可以下載由微軟官方推出的 WMI Code Creator 工具,此工具為綠色軟體不需要安裝,首先在 Namespace 欄位選擇預設的「root\CIMV2」,接著在 Classes 欄位選擇此次需要的「Win32_ComputerSystem」項目,接著點選「Model」項目,此時在右方的 Generated Code 區塊會顯示相關的程式碼內容 (你可以點選 Code Language 進行程式碼內容的切換),若要測試看看所選的結果,請按下「Excute Code」鈕,同樣的可以看到此實作環境環境的「VMware Virtual Platform」。
在 名稱 欄位中填入此 WMI 篩選器的名稱,此實作填入「VDI Machine Only」然後按下 新增 鈕,填入此次的命名空間「root\CIMv2」以及 WMI 查詢內容「Select * From WIn32_ComputerSystem Where Model = "VMware Virtual Platform"」後,按下 儲存 鈕。
選擇要套用 WMI 篩選器的 GPO
完成後,便可以選擇要套用剛才 WMI 篩選器項目的 GPO (請注意!! 一個 GPO 只能套用一個 WMI 篩選器),點選此次實作環境的 GPO 項目「View-Student」,然後在 WMI 篩選區塊中的下拉式選單選擇剛才建立的「VDI Machine Only」進行套用的動作。登入 VDI VM 進行功能驗證
透過 VMware Horizon View Client 登入 VDI VM 虛擬主機後,開啟命令提示字元後輸入指令「wmic ComputerSystem get model」,確認 VDI VM 虛擬主機的 Model 資訊,此實作環境為「VMware Virtual Platform」。登入實體主機進行功能驗證
同樣的以使用者帳號登入實體主機,開啟命令提示字元後輸入指令「wmic ComputerSystem get model」,確認實體主機的 Model 資訊,此實作環境為「G33M-DS2R」。接著輸入指令「gpresult /z | more」,確認 GPO 群組原則是否「不」會套用「View-Student」,從結果中可以看到已經被 WMI 篩選器功能所過濾掉,所以便不會套用到適合用於 VDI 虛擬桌面環境的 GPO。
參考
- TechNet Library - 群組原則規劃和部署指南
- MSDN Library - Win32 Provider
- TechNet Library - Create WMI Filters for the GPO
- Group Policy WMI Filter – Laptop or Desktop Hardware
- TechNet Blogs - WBEMTEST, the underappreciated tool
- Microsoft Download Center - WMI Code Creator v1.0
- TechNet Blogs - Two Minute Drill: WMI Code Creator
- How to find and use WMI values for Group Policy Filtering
- Group Policy and WMI, A Wonderful Combination