理解GPUpdate命令[深入]

Group Policy 是今天許多組織所使用的熱門 Active Directory 服務。如果您的組織使用 Group Policy,那麼您很可能熟悉 gpupdate 命令;更具體地說,就是 gpupdate /force 命令。

您知道 gpupdate 是在做什麼嗎?您是否需要使用強制參數?如果是的話,什麼時候使用是合理的?

在本文中,您將學到 gpupdate 的作用、工作原理以及如何最好地利用其選項。

GPUpdate 是什麼?

GPUpdate 是微軟提供的命令列實用工具,隨著 Windows 作業系統的所有版本一同提供。它是一個實用工具,用於控制指派給 Active Directory 電腦的 群組原則對象(GPOs) 的應用。

通常,當管理員將 GPO 指派給一台電腦或使用者時,該電腦會自動與域控制器檢查並應用 GPO 中定義的設置。不需要干預;這個過程是自動的。

在定期自動排程之外的某些時間,管理員需要強制電腦檢查新的或更改的 GPO。這種情況就是 gpupdate 發揮作用的地方。

簡而言之,gpupdate命令會與域控制器進行檢查,查看是否有分配給計算機的新的或更新的GPO,並立即嘗試應用它們。

前提條件

如果您想運行本教程中提供的任何示例,則本文的前提條件很簡單。

  • A Windows computer joined to an Active Directory domain
  • 至少有一個分配給您正在使用的計算機的GPO

gpupdate的工作原理

當您坐在一台加入域的計算機前,打開Windows命令提示符或PowerShell,運行gpupdate,一系列任務將開始執行。

Gpupdate in action
  1. gpupdate啟動Group Policy用戶端服務。該服務負責發現並應用新的Group Policy設置。

2. Group Policy用戶端服務然後連接到計算機的登錄域控制器,檢查是否有可用的新GPO或現有GPO的更新。

3. 如果Group Policy用戶端服務找到任何新的GPO或您使用gpedit.msc本地更改的GPO,則過程將處理所有客戶端擴展(CSE),先處理計算機設置,然後處理用戶設置。

Group Policy用戶端服務將事件記錄在應用程序和服務日誌\Microsoft\Windows\GroupPolicy\Operational下。

Gpupdate applies computer settings before the user settings.

相關: 群組原則的運作方式(詳情)

4. 一旦完成,群組原則客戶端服務將等待到下一個 刷新間隔,預設為90分鐘,再加上最多30分鐘的隨機偏移。

某些群組原則設定需要用戶注銷或重新啟動計算機才能生效。如果其中一個設定包含在原則中,gpupdate 將要求注銷或重新啟動計算機。

臭名昭著的 /force 開關解釋

現在,您已經了解執行 gpupdate 時發生的基本情況。到目前為止,一切似乎都運作正常,對吧?在 典型 情況下,執行 gpupdate 並允許其完成過程通常是可以的。但也有一些情況下,您需要強制進行一些操作。

gpupdate 中最廣泛使用的參數之一是 /force 開關。這個開關在每個IT專業人員的心中都被深深植根為一個必要的開關,與流行的觀念相反,在某些情況下實際上是不必要的。

默認情況下,gpupdate 是智能的;它比較所有當前設置與任何新設置,僅 應用 它們。但是,您還可以使用 /force 開關強制 gupdate 重新應用 所有設置。為什麼您需要這樣做呢?

有時候,設置會偏離預期值。例如,如果使用者停用由現有政策控制的 Windows 功能,運行 gpupdate /force 將強制群組原則客戶端服務重新評估該值並將其返回到預期值。或者,也許您想將使用者重新添加到已被移除的受限組。

群組原則客戶端服務定期重新應用某些設置,例如安全設置(默認間隔為 16 小時)。

使用 /force 開關的最大原因之一是處理僅可在登錄或啟動時應用的設置時。當發生這種情況時,即使新的設置不需要這樣的操作,Windows 也會提示您在運行 gpupdate /force 時登出或重新啟動。

深入研究 Gpupdate 的參數

現在您已經基本了解了 gupdate 的工作原理,並知道何時以及如何使用 /force 開關,現在讓我們專注於 gpupdate 提供的所有其他功能。

獲取幫助

如預期的那樣,gpupdate 命令可以提供有關每個參數及其作用的信息。儘管缺乏深度,但 /? 在您需要快速獲取關於如何執行特定任務的提醒時非常方便。

Gpupdate /? displays all the switches and options available with the command.

針對計算機或使用者設置進行定位

默認情況下,gpupdate 告訴群組原則客戶端服務處理計算機和使用者設置。如果您只需要刷新其中一組設置,可以使用 /target 參數。

您在使用/target参数时有两个选项;您可以使用/target:computer/target:user来定位计算机或用户设置。

您应该只在特定情况下使用/target参数,具体来说,首先定位用户设置,然后再定位计算机设置。为什么?因为有时策略会有重叠的用户和计算机设置。这种情况下,用户设置会覆盖计算机设置,可能导致意外行为。

创建超时

Gpupdate通常运行得很快,但是如果出现与无响应的DC或Group Policy客户端服务有关的问题,可能会挂起该过程。如果您在脚本中运行gpupdate,并且需要在运行gpupdate后执行进一步的任务,您可能需要创建一个超时。

您可以使用/wait参数强制gpupdate在一定时间后将控制权返回到命令窗口,并将策略处理推送到后台。 /wait参数的可用值如下。

Wait Value Result
0 Immediately returns control to console
-1 Waits indefinitely for gpupdate to finish
1+ Waits the number of seconds provided
600 Default value

强制自动注销

某些设置将需要用户注销并重新登录,如果无法进行后台处理。默认情况下,如果情况如此,gpupdate完成后会提示您。然而,如果您想在gpupdate完成后立即注销,可以使用/logoff开关。

/logoff开关可能并不总是有效

在Windows 10和Windows Server 2019上进行测试后,您有时会遇到一个未知问题,即/logoff参数无法正常工作。

例如,下面的客戶端已分配一個策略以啟用桌面重定向給已登錄的使用者。資料夾重定向設置僅能在登錄時處理,而不能在背景更新策略時進行。

未使用/logoff開關,一般使用者看到如下警告,需要登出以應用新的設置,這是預期的。但無論是否使用/logoff開關,您仍會收到提示,並且Windows不會自動登出。

Warning to log off after gpupdate

為了確保在這種情況下您被登出,您還必須使用/force開關。

強制自動重新啟動

/logoff開關類似,/boot開關在Windows無法在背景處理任何電腦設置時自動重新啟動計算機。/boot開關通常用於針對計算機的軟體安裝。

強制同步處理

群組策略客戶端服務同時(非同步地)應用策略,或者一次應用一個(同步地)。Windows僅在使用者登錄和計算機啟動時同步處理策略,否則異步處理。

在同步處理期間,群組策略客戶端調用所有的CSE,即使沒有設置發生變化。同步處理是必要的,因為某些設置依賴於其他設置。

您可以將/sync開關與/target: user/target:computer結合使用。您只能在以系統管理員身份運行命令窗口時使用/sync開關。否則,您將會看到下面的拒絕訪問錯誤消息。

Running gpupdate /sync as a normal user is not allowed.
Running gpupdate /sync as administrator prompts for a restart.

相關: 如何以系統管理員身份運行 PowerShell

非同步處理是優化域用戶登錄體驗的一種方式。在Windows XP之前,所有策略處理都是同步的,唯一的缺點是某些設置在應用之前需要兩次登錄或兩次重新啟動。自Windows XP以來,默認模式現在是非同步的。

結論

如果您跟隨本文,現在應該清楚了 gpupdate 的作用以及如何使用其開關來更改其行為。如果您有興趣在更大範圍內使用 gpupdate 或自動化使用它,請務必檢查其 PowerShell 對應物, Invoke-GPUpdate

Source:
https://adamtheautomator.com/gpupdate/