Windows 10:啟動後無法直接應用組策略,稍後成功
我的問題是新啟動客戶端時未應用組策略。啟動後,客戶端直接在事件日誌中發布一條錯誤消息,源為“GroupPolicy (Microsoft-Windows-GroupPolicy)”和事件 ID 1058:“組策略處理失敗。
$$ … $$"。在詳細資訊選項卡中,錯誤程式碼為 50,代表 ERROR_NOT_SUPPORTED。這不僅僅是一個表面問題:策略確實沒有正確應用:例如,映射的網路驅動器不存在。等待一段時間後,執行“gpupdate”工作正常,策略應用正常:出現映射的網路驅動器。 我能夠重現問題的最簡單場景:在新安裝的 Windows Server 2012R2 上新創建的域,客戶端是新安裝的 Windows 10 64 位電腦。域僅由一個域控制器組成,與其他域沒有任何關係。
由於錯誤消息指出 Windows 無法從域的 Sysvol 共享中讀取 .GPT 文件,因此我嘗試從命令提示符訪問相同的文件。確實,當我在啟動後立即打開命令提示符時,我得到了這個:
C:\Users\username>dir \\domain.example.com\sysvol The request is not supported.
等待一兩分鐘後,執行相同的命令將給出目錄列表。此時執行 gpupdate 就可以了。
我確實將組策略設置“在電腦啟動和登錄時始終等待網路”設置為“啟用”,並且我知道此策略已應用:在同一策略對像中指定了系統資料庫設置,當我檢查系統資料庫時在客戶端上,指定的設置就在那裡。
其他可能相關的因素:
- NTLM 在域中受到限制,但這似乎無關緊要:即使在啟用它、更新策略並重新啟動所有電腦之後,症狀仍然相同。
- 伺服器是使用 DHCP 配置還是使用靜態配置都無關緊要。
- 域的 DNS 伺服器不支持動態更新。手動添加了必要的記錄(來自 C:\Windows\System32\config\netlogon.dns)
- 客戶端上禁用了休眠(使用
powercfg /h off
),因此每次啟動都是完全啟動,而不是快速啟動- 策略啟動策略處理等待時間設置為 120 秒
- 與 DC 的連接工作正常。ping 將起作用。關閉客戶端,禁用我在 AD 中的帳戶,打開客戶端將導致客戶端不讓我登錄:它立即註意到該帳戶已被禁用。
- 除了這個問題,我沒有發現任何異常。
這似乎更像是一個 SMB 問題而不是組策略問題。嗅探伺服器端的連接顯示了一些有趣的事情:我第一次執行命令
dir \\domain.example.com\sysvol
時,DC 上的 Microsoft 消息分析器中顯示以下內容:
- Client與DC的445埠建立TCP連接,ComNegotiation成功執行(DialectRevision: 0x02FF)。
- 之後立即成功執行協商。DialectRevision 是 0x0302。
- 緊接著,客戶端使用 TCP RST (??) 關閉 TCP 連接
每次我發出命令並收到錯誤時,都會發生第 2 步和第 3 步。
當命令開始工作時,會發生第 1 步和第 2 步,但不是客戶端發送 TCP RST,而是執行 SessionSetup,然後是 TreeConnect,然後發生大量(看似正常的)SMB 聊天。
因此,客戶端在啟動後一兩分鐘之前似乎無法正確地將 SMB 與 DC 通信,這會導致組策略處理失敗。
有人知道我如何調試和解決這個問題嗎?
我自己設法解決了這個問題。供參考,這是解決我的問題的方法:
首先,我錯了,因為禁用 NTLM 的所有阻止會導致相同的症狀。它導致了不同的症狀,恰好具有相同的效果。如果沒有任何有效的 NTLM 阻止策略,該
dir
命令現在會導致訪問被拒絕錯誤。組策略仍然不適用,這是有道理的:SYSVOL 仍然無法訪問。一些網路搜尋告訴我,我知道有一個更常見的問題。儘管。顯然,Windows 10 客戶端在訪問域控制器的 SYSVOL 共享(可能還有 NETLOGON 共享)時可能會遇到問題。據說 Windows 10 改變了訪問這些共享的方式,這可能會導致問題。解決方法是為這些共享在客戶端上禁用 UNC 路徑強化,方法是為 Windows 10 客戶端設置“強化的 UNC 路徑”組策略,如下所示:
\\*\SYSVOL RequireMutualAuthentication=0,RequireIntegrity=0,RequirePrivacy=0 \\*\NETLOGON RequireMutualAuthentication=1,RequireIntegrity=1
(如果您在從 Windows 10 客戶端訪問 Netlogon 共享時遇到問題,也可以將該共享的所有三個參數設置為零。)
有關詳細資訊,請參閱Microsoft 關於 MS15-011 的文章。它很好地描述了更改此設置的安全影響,以及如何更改策略的詳細步驟。
警告:請注意,上述設置禁用了針對 MS15-011 創建的安全問題的部分或全部保護!不要只是盲目地複制/粘貼它們,而是要根據所涉及的風險做出明智的決定。此外,這個問題很可能在未來的某個時候得到解決。發生這種情況時,請不要忘記將此策略設置為 MS15-011 中所述的推薦值。
從 Windows 8 開始,Microsoft 引入了“快速啟動”的概念,當您關閉作業系統時,它們會休眠作業系統記憶體佔用,就像 Hibernate 在正常休眠情況下工作一樣。這會導致作業系統啟動得更快,但它也有在啟動時禁用每台電腦的 GP 處理的副作用。這可能是您所看到的,可以通過禁用電腦配置\策略\管理模板\系統\關機\需要使用快速啟動下的策略來禁用它
如果這不能解決問題,那麼很可能是網路堆棧計時問題,其中電腦的 GP 處理在網路堆棧完全初始化之前就開始了。自 XP 以來一直存在這種情況,從 Windows 7 開始,Microsoft 在 Computer Configuration\Policies\Administrative Templates\System\Group Policy\Startup Policy Processing Wait Time 下添加了一個策略,您可以在其中增加 GP 在啟動之前等待的時間。嘗試將其設置為 60 秒,看看是否有幫助。
達倫