此案例指南說明如何使用 TroubleShootingScript (TSS) 收集數據,以針對組策略物件 (GPO) 對應網路驅動器無法如預期般套用的問題進行疑難解答。
疑難排解指南
繼續進行之前,請參閱 套用組策略疑難解答指引。
Environment
- 網域名稱:
contoso.com
- Active Directory 網站:四個網站(每個網站的兩個域控制器)(鳳凰城、倫敦、東京和孟買)
- 域控制器數目:8
- 域控制器操作系統:Windows Server 2019
- 用戶端電腦操作系統:Windows 11 版本 22H2
在這個案例中
在開始進行疑難解答之前,以下是一些可協助我們了解情況並縮小問題原因的範圍問題:
什麼是客戶端和伺服器作業系統?
答:用戶端計算機是 Windows 11 版本 22H2,以及對應磁碟驅動器所在的檔伺服器位於 Linux Server 上。如何設定組策略喜好設定?
答:我們有一 個名為 Mapped-Drive 的 GPO,而此 GPO 是使用組策略喜好設定對應的磁碟驅動器擴充功能來設定。GPO 對應磁碟驅動器 範圍內的所有使用者是否受到影響?
答:我們已將此 GPO 設定為「IT 用戶」組織單位(OU)。 我們測試了四到五位使用者。 針對所有磁碟驅動器,不會對應磁碟驅動器 Z。如果您手動對應磁碟驅動器,而不是使用組策略喜好設定,會發生什麼事?
答:我們可以使用 命令成功將磁碟驅動器 Znet use
對應至相同的文件伺服器。此 GPO 是新的 GPO,還是 GPO 以前是否正常運作?
答:此 GPO 先前已運作,且已由所有使用者用來取得對應的磁碟驅動器。 自從過去幾天以來,對應的磁碟驅動器無法運作。當您執行
gpresult /h
並檢閱輸出時,您是否觀察到 GPO Mapped-Drive 位於適用的清單中?
答:是,我們確實觀察到 對應磁碟驅動器 GPO 已套用在適用的清單中。您是否已為使用者或群組設定任何安全性篩選、WMI 篩選或設定任何拒絕(套用)設定?
答:GPO 是使用預設設定來設定,而且從安全性篩選、WMI 篩選或設定任何拒絕許可權的觀點來看,不會對 GPO 進行任何變更。
疑難排解
首先,收集下列數據以進行疑難解答。 由於我們需要追蹤登入或登入,因此我們必須以本機系統管理員或任何其他具有本機系統管理員認證的用戶帳戶身分執行下列工作。
注意
這些步驟需要快速的使用者切換才能啟用。 如果您在嘗試切換使用者時遇到問題,請檢查是否已設定下列原則或登錄值:
- 組策略:在 [計算機設定\系統管理範本\系統\登入] 下,隱藏快速使用者切換組策略的進入點。
- 登錄機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
。 - 登錄值:
HideFastUserSwitching
下載 TSS 並將 ZIP 檔案解壓縮到 C:\temp 資料夾。 如果資料夾不存在,請建立資料夾。
開啟提升權限的 PowerShell 命令,然後執行命令:
Set-ExecutionPolicy unrestricted
移至 c:\temp\TSS,您可以在其中擷取 TSS Zip 檔案。
執行
.\TSS.ps1 -Start -Scenario ADS_GPOEx -Procmon
。 接受合約,並等候 TSS 開始收集數據。切換使用者,然後使用看不到磁碟驅動器 Z 對應的使用者帳戶登入。
登入成功之後,請開啟命令提示字元並執行
gpresult /h appliedgpo.htm
。 確認 GPO Mapped-Drive 位於適用的清單中。再次切換使用者,然後使用已啟動 TSS 記錄的用戶帳戶登入。 按 Y。
TSS 會停止收集數據,而收集的數據會以 Zip 檔案或名為 TSS_Machinename_Time> 的資料夾的形式位於 C:\MSDATA 資料夾中_ADS_GPOEx<。<>
如需 TSS 的詳細資訊,請參閱 疑難解答Script 工具組 (TSS) 簡介。
資料分析
移至 TSS 已儲存所有報表的 c:\msdata 資料夾,然後擷取 ZIP 檔案的內容。 檢閱名為 <Client_machinename-Time>>_Microsoft-Windows-GroupPolicy-Operational.evtx< 的檔案。
啟動事件 4001
顯示「使用者」OU 的事件 5017
GPO 對應磁碟驅動器 會連結至「使用者」OU。
顯示適用 GPO 清單的事件 5312
我們確實看到 GPO Mapped-Drive 位於適用的清單中。
顯示組策略磁碟驅動器對應延伸模組已處理並成功的事件 4016
組策略喜好設定追蹤
從組策略作業記錄中,我們觀察到已處理組策略,並成功套用組策略喜好設定。 除了上述專案,我們也可以檢閱 TSS 工具收集的組策略喜好設定記錄/追蹤。
組策略喜好設定追蹤是我們可以針對任何組策略喜好設定用戶端延伸模組啟用的額外記錄。 默認會啟用 TSS GPOEx 追蹤。
注意
如果您想要手動啟用 GPSVC 記錄,請遵循 使用 RSAT 啟用組策略喜好設定偵錯記錄。
在這裡,我們會介紹如何檢閱及搜尋 GPSVC 記錄檔,以確認組策略已成功套用至用戶端。
在 <Clientmachinename>_<Date_Time>_GPPREF_User.txt 中,我們發現 GPP 對應磁碟驅動器延伸模組正在啟動處理。
注意
為了簡潔和可讀性的目的,分析只會包含相關疑難解答數據的代碼段,而不是記錄中的所有數據。
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Entering ProcessGroupPolicyExDrives()
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] SOFTWARE\Policies\Microsoft\Windows\Group Policy\{5794DAFD-BE60-433f-88A2-1A31939AC01F}
組策略對應磁碟驅動器延伸模組識別出使用此擴充功能設定的 GPO,且名稱為 Mapped-Drive:
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] GPC : LDAP://CN=User,cn={6D6CECFD-C75A-43FA-8C32-0B5963E42C5B},cn=policies,cn=system,DC=contoso,DC=com
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] GPT : \\contoso.com\SysVol\contoso.com\Policies\{6D6CECFD-C75A-43FA-8C32-0B5963E42C5B}\User
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] GPO Display Name : Mapped-Drive
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] GPO Name : {6D6CECFD-C75A-43FA-8C32-0B5963E42C5B}
我們發現磁碟驅動器 Z 已成功對應:
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Starting class <Drive> - Z:.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Policy is not flagged for removal.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Completed class <Drive> - Z:.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Completed class <Drives>.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] EVENT : The user 'Z:' preference item in the 'Mapped-Drive {6D6CECFD-C75A-43FA-8C32-0B5963E42C5B}' Group Policy Object applied successfully.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Completed class <Drive> - Z:.
yyyy-mm-dd hh:mm::ss:sss [pid=0x3134,tid=0x4fc] Completed class <Drives>
使用 Procmon 尋找移除磁碟驅動器 Z 的程式
此時,我們知道會套用組策略喜好設定,但磁碟驅動器 Z 不會顯示。 我們可以手動對應磁碟驅動器,但在登入或登入期間將會刪除磁碟驅動器。 因此,有些其他設定會在登入期間刪除電腦上的磁碟驅動器 Z。
接下來,我們需要分析 Procmon 追蹤,以觀察已刪除的對應磁碟驅動器。 TSS 工具也會使用 -Procmon
我們用來收集數據的 參數來收集 Procmon 追蹤。
序言追蹤可能壓倒性。 請遵循下列步驟來設定篩選以檢視數據。 篩選可用來針對與對應磁碟驅動器相關的任何問題進行疑難解答。
開啟 Clientmachinename_date_time_Procmon_0.pml 檔案。><><
選取 [篩選 - 篩選]。
新增篩選:詳細 - 數據包含 - Z:。
篩選的輸出會顯示兩個進程: cmd.exe 和 net.exe。
按兩下 net.exe ,然後移至包含下列參數的 [ 處理 ] 索引標籤:
- 命令行:對應磁碟驅動器的刪除作業。
- 父 PID:net.exe的父進程為13436。
- 使用者:執行此程式內容的用戶名稱。 在我們的範例中,它是用戶帳戶本身。
然後,設定另一個篩選,以識別使用父進程篩選產生net.exe的人員。
移至 [篩選篩選] - ,然後選取 [重設]。
現在,使用父系的 PID 套用下列篩選。
我們發現 PID 是 cmd.exe,而且它似乎正在處理具有下列參數的 GPO:
- 命令列:
C:\Windows\system32\cmd.exe /c "\contoso.com\SysVol\contoso.com\Policies{E347CA05-D21D-433D-9BCA-2FE555336749}\User\Scripts\Logon\deletedrives.bat"
- 父 PID:cmd.exe的父進程為14900。
- 使用者:執行此程式內容的用戶名稱。 在我們的範例中,它是使用者本身。
現在,移至 [篩選 - 篩選]、選取 [重設],然後套用下列篩選條件,再次使用相同的機制和 PID 篩選:
我們發現GPScrpit.exe是cmd.exe程式的父進程。 使用這個提示時,我們觀察到有一個組策略腳本會刪除對應的磁碟驅動器。
摘要
Net.exe正在刪除對應的磁碟驅動器,且其父進程cmd.exe。 執行下列命令:
net use z: /delete
CMD.exe正在處理.bat檔案deletedrives.bat,且其父進程GPScript.exe。
C:\Windows\system32\cmd.exe /c "\contoso.com\SysVol\contoso.com\Policies{E347CA05-D21D-433D-9BCA-2FE555336749}\User\Scripts\Logon\deletedrives.bat"
GPScript.exe是在登入期間執行以處理任何登入腳本的程式。
我們需要識別包含此登入腳本的 GPO。 以下是兩種方法。
方法 1:使用記錄收集期間收集的 Gpresult /h 輸出
方法 2:使用組策略管理嵌入式管理單元 (GPMC.msc)
在已安裝嵌入式管理單元的域控制器或計算機上開啟 GPMC.msc 。
以滑鼠右鍵按兩下網域,然後選取 [ 搜尋]。
在搜尋專案中,選取 [GUID],然後輸入我們在 命令中找到的 GPO GUID cmd.exe。
我們發現 DomainWideSettings GPO 具有登入腳本。
如果您不想讓 DomainWideSettings GPO 刪除對應的磁碟驅動器,請使用下列其中一種方法:
- 從 GPO DomainWideSettings 移除登入腳本,因為此 GPO 是用來設定其他全網域設定。
- 完全取消連結 GPO DomainWideSettings 。
- 在用戶物件所在的 「使用者」OU 上設定「封鎖原則繼承」。
- 為 GPO DomainWideSettings 上的 「Users」 群組設定拒絕 「套用 GPO」。