對這文章發表回應
發表限制: 非會員 可以發表
強制遠端群組原則更新 (GPUpdate)
更新日期: 2012年7月
適用於: Windows Server 2012
群組原則是一種複雜的基礎結構,可以讓您套用原則設定,以遠端方式設定某個網域中的電腦和使用者經驗。當原則結果組設定不符合您的預期時,最佳做法是先確認電腦和使用者已經收到指定電腦和使用者專用的一組最新原則設定。在舊版的 Windows 中,使用者要在電腦上執行 GPUpdate.exe 才能完成這個動作。
從 Windows Server® 2012 和 Windows® 8 開始,您可以透過群組原則管理主控台 (GPMC),從一個集中位置以遠端方式為 OU 中的所有電腦更新群組原則設定。或者,您也可以使用 Invoke-GPUpdate Cmdlet 為一組電腦更新群組原則,且不限於 OU 結構,例如當電腦位於預設電腦容器中時。
遠端群組原則更新會透過使用在群組原則管理主控台 (GPMC) 中為 OU 內容功能表新增的功能,更新所有群組原則設定 (包括針對一組遠端電腦設定的安全性設定)。當您選取一個 OU,遠端更新該 OU 中所有電腦的群組原則設定時,會發生下列操作:
- Active Directory 查詢會傳回屬於該 OU 的所有電腦清單。
- 對於屬於所選 OU 的每一部電腦,WMI 呼叫會擷取已登入的使用者清單。
- 系統會建立一個遠端排程工作為每個登入的使用者執行 Gpupdate.exe /force,並針對電腦群組原則更新執行一次。排程工作被排定為以隨機延遲 (最多 10 分鐘) 的方式執行,以降低網路流量負載。使用 GPMC 時,無法設定這項隨機延遲,但是使用 Invoke-GPUpdate Cmdlet 時,則可以設定排程工作的隨機延遲,或是將排程工作設定成立即執行。
本文件描述使用 GPMC 強制從遠端為組織單位 (OU) 中的所有電腦和所選 OU 中包含的所有 OU 進行群組原則更新的方法。會在 GPMC 程序之後,說明對應的 Windows PowerShell 方法。
本文件內容
![]() |
---|
此主題包括您可以用於自動化部分所述程序的 Windows PowerShell Cmdlet 範例。如需詳細資訊,請參閱 使用 Cmdlet。 |
您只能在執行下列作業系統的已加入網域電腦,使用 GPMC 強制執行遠端群組原則更新:
- Windows Server 2012
- 具有 Windows 8 之遠端伺服器管理工具的 Windows 8
您可以為執行下列作業系統的任何電腦排定遠端群組原則更新:
- Windows Server 2012
- Windows Server 2008 R2
- Windows Server 2008
- Windows 8
- Windows 7
- Windows Vista
為了能夠使用 GPMC 或 Invoke-GPUpdate Cmdlet 順利為已加入網域的電腦排定群組原則更新,您必須設定防火牆規則支援連接埠的輸入網路流量,以支援遠端群組原則更新。
若要使用 GPMC 或 Invoke-GPUpdate Cmdlet 為已加入網域的電腦排定透過防火牆進行群組原則更新,您的防火牆規則必須在下表所列的連接埠上啟用輸入網路流量。
伺服器連接埠 | 網路流量類型 |
---|---|
TCP RPC 動態連接埠,排程 (工作排程器服務) | 遠端排程工作管理 (RPC) |
TCP 連接埠 135,RPCSS (遠端程序呼叫服務) | 遠端排程工作管理 (RPC-EPMAP) |
TCP 所有連接埠,Winmgmt (Windows Management Instrumentation 服務) | Windows Management Instrumentation (WMI-in) |
在 Windows Server 2012 中,群組原則新增了一個入門 GPO,稱為 [群組原則遠端更新防火牆連接埠]。這個入門 GPO 包含設定防火牆規則的原則設定,如上表所示,可啟用所需連接埠上的輸入網路流量,以允許執行遠端群組原則更新。最佳做法是從這個入門 GPO 建立一個新 GPO 並將該 GPO 連結到您的網域 (程序高於預設網域 GPO),以便設定網域中的所有電腦啟用遠端群組原則更新。
在 GPMC 主控台樹狀目錄中,找出您要設定所有電腦的網域,以啟用遠端群組原則更新。
在選取的網域上按一下滑鼠右鍵,然後按一下 [在這個網域中建立 GPO 並連結到...]。
在 [新增 GPO] 對話方塊的 [名稱] 方塊中,輸入新群組原則物件的名稱。
從您想要用來建立新群組原則物件的 [來源入門 GPO] 清單中,選取 [群組原則遠端更新防火牆連接埠] 入門 GPO。
按一下 [確定]。
在結果窗格中按一下 [已連結的群組原則物件]。
選取您剛才建立的 GPO。按一下向上鍵,直到您剛才建立的 GPO 連結順序位於預設網域原則的上方為止。如此一來,新 GPO 的連結順序值將會小於預設網域原則。
Windows PowerShell 對應命令
下列一或多個 Windows PowerShell Cmdlet 執行的功能與前述程序相同。在單行輸入各個 Cmdlet,即使由於格式限制,此處可能出現數行自動換行亦然。
您可以使用 New-GPO Cmdlet 搭配 –StarterGpoName 參數來建立一個新的 GPO。然後,您可以將 New-GPO Cmdlet 的輸出透過管道傳送給 New-GPLink Cmdlet。
例如,使用 [群組原則遠端更新防火牆連接埠] 入門 GPO 建立名為 [Configure firewall rules for remote gpupdate] 的新 GPO,然後將 [Configure firewall rules for remote gpupdate] GPO 連結到 Contoso.com 網域,輸入下列程式碼:
New-GPO –Name "Configure firewall rules for remote gpupdate" –StarterGpoName "Group Policy Remote Update Firewall Ports" | New-GPLink –target "dc=Contoso,dc=com" –LinkEnabled yes
如需有關 New-GPO Cmdlet 和 New-GPLink Cmdlet 的詳細資訊,請參閱:
您可以從 GPMC 或是使用新的 Invoke-GPUpdate Cmdlet 從 Windows PowerShell 工作階段,排定在多部電腦上執行 gpupdate.exe。這個程序會同時示範兩種強制執行遠端群組原則更新的方法。
在 GPMC 主控台樹狀目錄中,找出您要的 OU,以更新該 OU 所有電腦的群組原則。
備註
所選 OU 所含 OU 中的所有電腦也會同時更新群組原則。 以滑鼠右鍵按一下所選 OU,然後按一下 [群組原則更新…]
在 [強制群組原則更新] 對話方塊畫面中,按一下 [是]。這相當於從命令列執行 Gpupdate.exe /force。
[遠端群組原則更新結果] 視窗只會針對所選 OU 中的所有電腦及所選 OU 所含的所有 OU,顯示排定群組原則更新的狀態。這個畫面並不會顯示每部電腦的實際群組原則更新是否成功。
使用 [原則結果組] 來判斷已排程群組原則更新是否成功, 決定原則結果組。
備註
確認每部電腦的群組原則更新結果時,應該將啟動群組原則更新時的延遲 (最多 10 分鐘) 也一併計入。
Windows PowerShell 對應命令
下列一或多個 Windows PowerShell Cmdlet 執行的功能與前述程序相同。在單行輸入各個 Cmdlet,即使由於格式限制,此處可能出現數行自動換行亦然。
Invoke-GPUpdate Cmdlet 可以讓您使用 gpupdate.exe 命令列公用程式提供的所有選項,為指定的電腦排定遠端群組原則更新。與透過 GPMC 排定更新相比,這個方式給您較多的自由決定要更新哪一組電腦。此外,使用 –RandomDelayInMinutes 參數時,也可以自由設定執行群組原則更新之前要等待的間隔時間。如果將值設為零 (0),將會把排定的群組原則更新工作設定為立即開始。如需有關 Invoke-GPUpdate Cmdlet 的詳細資訊,請參閱 Invoke-GPUpdate。
您可以執行 Invoke-GPUpdate Cmdlet 且不包含任何參數,在您登入的電腦更新已變更的群組原則設定。例如:
Invoke-GPUpdate
您無法使用 GPMC [更新群組原則...] 功能為 [電腦] 容器排定群組原則更新。[電腦] 容器是電腦帳戶的預設位置。不會當作可供 GPMC 管理的 OU 進行實作。藉由將 Active Directory Cmdlet Get-ADComputer 與 Invoke-GPUpdate Cmdlet 結合使用,您便可以為 [電腦] 容器中的所有電腦排定遠端更新。如需 Windows Server 2012 可用 Active Directory Cmdlet 的詳細資訊,請參閱 Windows PowerShell 中的 AD DS 系統管理 Cmdlet。
首先,使用 Get-ADComputer Cmdlet 取得 [電腦] 容器中的電腦清單。接著,提供傳回 Invoke-GPUpdate Cmdlet 的每部電腦名稱。
例如,若要強制更新 Contoso.com 網域之 [電腦] 容器中所有電腦的所有群組原則設定,請輸入下列程式碼:
Get-ADComputer –filter * -Searchbase "cn=computers, dc=Contoso,dc=com" | foreach{ Invoke-GPUpdate –computer $_.name -force}
將 Get-ADComputer 與 Invoke-GPUpdate Cmdlet 結合使用時,可以針對單一 OU 中所有電腦的所有群組原則設定,強制執行群組原則更新。例如,若要強制更新 Contoso.com 網域之 Accounting OU 中所有電腦的所有群組原則設定,請輸入下列程式碼:
Get-ADComputer –filter * -Searchbase "ou=Accounting, dc=Contoso,dc=com" | foreach{ Invoke-GPUpdate –computer $_.name -force}
將 Get-ADComputer 與 Invoke-GPUpdate Cmdlet 結合使用並將 –-RandomDelayInMinutes 設為 0 時,可以針對單一 OU 中所有電腦的所有群組原則設定,強制執行立即群組原則更新。例如,若要強制更新 Contoso.com 網域之 Accounting OU 中所有電腦的所有群組原則設定,請輸入下列程式碼:
Get-ADComputer –filter * -Searchbase "ou=Accounting, dc=Contoso,dc=com" | foreach{ Invoke-GPUpdate –computer $_.name –force –-RandomDelayInMinutes 0}
原文出處: 強制遠端群組原則更新 (GPUpdate)