ในบทความนี้เราจะแสดงวิธีอัปเดตการตั้งค่า Group Policy (GPO) บนคอมพิวเตอร์ Windows ใน Active Directory Domain: วิธีอัปเดต (Refresh) Group Policies แบบอัตโนมัติ วิธีใช้คำสั่ง GPUpdate วิธีอัปเดตแบบ Remote โดยใช้ Group Policy Management Console (GPMC.msc) หรือ PowerShell Cmdlet Invoke-GPUpdate
วิธีเปลี่ยน Group Policy Refresh Interval
ก่อนที่การตั้งค่าใหม่ที่คุณตั้งค่าใน Local หรือ Domain Group Policy (GPO) จะถูกนำไปใช้กับ Windows Clients บริการ Group Policy Client ต้องอ่าน Policies และทำการเปลี่ยนแปลงการตั้งค่า Windows กระบวนการนี้เรียกว่า Group Policy Update GPO Settings จะถูกอัปเดตเมื่อคอมพิวเตอร์ Boot, User Logon และ Refresh แบบอัตโนมัติใน Background ทุก 90 นาที + Random Time Offset 0-30 นาที (หมายความว่าการตั้งค่า Policy จะถูกนำไปใช้กับ Clients อย่างแน่นอนภายใน 90-120 นาทีหลังจากที่คุณอัปเดตไฟล์ GPO บน Domain Controller)
โดย Default Domain Controllers อัปเดต GPO Settings บ่อยกว่า: ทุก 5 นาที
คุณสามารถเปลี่ยน GPO Update Interval โดยใช้ตัวเลือก Set Group Policy refresh interval for computers ที่ตั้งอยู่ใน Computer Configuration -> Administrative Templates -> System -> Group Policy Section ของ GPO
เปิดใช้งาน Policy และตั้งค่าเวลา (เป็นนาที) สำหรับตัวเลือกต่อไปนี้:
- This setting allows you to customize how often Group Policy is applied to computers (0 ถึง 44640 นาที) ความถี่ที่ Client ควร Refresh GPO Settings ใน Background หากตั้งค่า 0 ที่นี่ Policies จะถูกอัปเดตทุก 7 วินาที (ไม่ควรทำเช่นนั้น);
- This is a random time added to the refresh interval to prevent all clients from requesting Group Policy at the same time (0 ถึง 1440 นาที) คือค่าสูงสุดของ Random Time Interval ที่เพิ่มเป็น Offset ไปยังพารามิเตอร์ก่อนหน้า (ใช้เพื่อลดจำนวนการเรียก DC พร้อมกันจาก Client เพื่อดาวน์โหลดไฟล์ GPO)

โปรดทราบว่า การอัปเดต GPO บ่อยครั้งจะทำให้ Traffic ไปยัง Domain Controllers เพิ่มขึ้นและนำไปสู่ Network Load สูงขึ้น
การใช้คำสั่ง GPUpdate.exe เพื่อบังคับ Refresh GPO Settings
Administrator ทุกคนรู้จักคำสั่ง gpupdate.exe ที่ช่วยอัปเดตการตั้งค่า Group Policy บนคอมพิวเตอร์ ในการทำเช่นนั้น ส่วนใหญ่ใช้คำสั่ง gpupdate /force โดยไม่ลังเล คำสั่งนี้บังคับให้คอมพิวเตอร์อ่าน GPO ทั้งหมดจาก Domain Controller และนำไปใช้ใหม่ ทั้งหมด หมายความว่าเมื่อใช้ Key force Client จะเชื่อมต่อกับ Domain Controller เพื่อดึงไฟล์สำหรับ Policies ทั้งหมดที่ Target ไปยังมัน อาจทำให้เกิด Load สูงขึ้นบน Network และ Domain Controller ของคุณ
คำสั่ง gpudate แบบง่ายโดยไม่มีพารามิเตอร์ใดๆ จะนำไปใช้เฉพาะ GPO Settings ใหม่และที่เปลี่ยนแปลงเท่านั้น
หากสำเร็จ ข้อความต่อไปนี้จะปรากฏ:
Updating policy... Computer Policy update has completed successfully. User Policy update has completed successfully.

หากบาง Policies หรือ Settings ไม่ได้ถูกนำไปใช้ ให้ใช้คำสั่ง gpresult เพื่อวินิจฉัยปัญหาและปฏิบัติตามคำแนะนำในบทความ Common Problems Causing Group Policy To Not Apply
คุณสามารถอัปเดตเฉพาะ User's GPO Settings ได้:
gpupdate /target:user
หรือเฉพาะ Computer's Policy Settings:
gpupdate /target:computer /force
หากบาง Policies ไม่สามารถอัปเดตใน Background ได้ gpupdate อาจ Log Off Current User:
gpupdate /target:user /logoff
หรือ Restart Computer (หากการเปลี่ยนแปลง GPO สามารถนำไปใช้ได้เฉพาะตอน Windows Boot):
gpupdate /Boot
วิธีบังคับ Remote GPO Update จาก Group Policy Management Console (GPMC)
ใน Windows Server 2012 และใหม่กว่า คุณสามารถอัปเดตการตั้งค่า Group Policy บน Domain Computers แบบ Remote โดยใช้ GPMC.msc (Group Policy Management Console)
ใน Windows 10 คุณจะต้องติดตั้ง RSAT เพื่อใช้ GPMC Console:
Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0
จากนั้นหลังจากเปลี่ยนการตั้งค่าใดๆ หรือสร้างและ Link GPO ใหม่ เพียงแค่คลิกขวาที่ Organizational Unit (OU) ที่คุณต้องการใน GPMC และเลือก Group Policy Update ใน Context Menu ในหน้าต่างใหม่ คุณจะเห็นจำนวนคอมพิวเตอร์ที่ GPO จะถูกอัปเดต ยืนยันการ Force Update ของ Policies โดยคลิก Yes

จากนั้น GPO จะถูกอัปเดต Remote บนแต่ละคอมพิวเตอร์ใน OU ทีละเครื่อง และคุณจะได้ผลลัพธ์พร้อมสถานะการอัปเดต Group Policy บนคอมพิวเตอร์ (Succeeded/Failed)
ฟีเจอร์นี้สร้าง Task ใน Task Scheduler ด้วยคำสั่ง GPUpdate.exe /force สำหรับแต่ละ Logged On User บน Remote Computer Task จะรันในช่วงเวลาสุ่ม (สูงสุด 10 นาที) เพื่อลด Network Load
เพื่อให้ฟีเจอร์ GPMC Remote GPO Update ทำงานบน Client เงื่อนไขต่อไปนี้ต้องเป็นจริง:
- TCP Port 135 ต้องเปิดในกฎ Windows Defender Firewall;
- Windows Management Instrumentation และ Task Scheduler Services ต้องเปิดใช้งาน
หากคอมพิวเตอร์ปิดอยู่หรือ Firewall บล็อกการเข้าถึง ข้อความ 'The remote procedure call was canceled. Error Code 8007071a' จะปรากฏข้างชื่อคอมพิวเตอร์
จริงๆ แล้ว ฟีเจอร์นี้ทำงานเหมือนกับที่คุณอัปเดต GPO Settings ด้วยตนเองโดยใช้คำสั่ง GPUpdate /force บนแต่ละคอมพิวเตอร์

Invoke-GPUpdate: บังคับ Remote Group Policy Update ผ่าน PowerShell
คุณยังสามารถเรียก Remote GPO Update บนคอมพิวเตอร์โดยใช้ PowerShell Cmdlet Invoke-GPUpdate (เป็นส่วนหนึ่งของ RSAT) ตัวอย่างเช่น เพื่ออัปเดต User Policy Settings แบบ Remote บนคอมพิวเตอร์เฉพาะ คุณสามารถใช้คำสั่งต่อไปนี้:
Invoke-GPUpdate -Computer "frparsrv12" -Target "User"
หากคุณรัน Cmdlet Invoke-GPUpdate โดยไม่มีพารามิเตอร์ มันจะอัปเดต GPO Settings บนคอมพิวเตอร์ปัจจุบัน (เหมือน gpudate.exe)
ร่วมกับ Cmdlet Get-ADComputer คุณสามารถอัปเดต GPO บนคอมพิวเตอร์ทั้งหมดใน OU เฉพาะได้:
Get-ADComputer –filter * -Searchbase "OU=Computes,OU=Mun,OU=DE,dc=woshub,dc=com" | foreach{ Invoke-GPUpdate –computer $_.name -force}
หรือบนคอมพิวเตอร์ทั้งหมดที่ตรงตามเงื่อนไขเฉพาะ (ตัวอย่างเช่น บน Windows Server Hosts ทั้งหมดใน Domain):
Get-ADComputer -Filter {enabled -eq "true" -and OperatingSystem -Like '*Windows Server*' }| foreach{ Invoke-GPUpdate –computer $_.name –RandomDelayInMinutes 10 -force}
คุณสามารถตั้งค่า Random Offset สำหรับการอัปเดต GPO โดยใช้ RandomDelayInMinutes ดังนั้น คุณสามารถลด Network Load หากคุณอัปเดต Group Policy Settings บนหลายคอมพิวเตอร์พร้อมกัน เพื่อนำไปใช้ Group Policy Settings ทันที พารามิเตอร์ RandomDelayInMinutes 0 จะถูกใช้ คำสั่ง Invoke-GPUpdate จะคืนค่าข้อผิดพลาดต่อไปนี้สำหรับคอมพิวเตอร์ที่ไม่พร้อมใช้งาน:
Invoke-GPUpdate: Computer "frparsrv12" is not responding. The target computer is either turned off or Remote Scheduled Tasks Management Firewall rules are disabled.

หากคุณรัน Cmdlet Invoke-GPUpdate แบบ Remote หรืออัปเดต GPO จาก GPMC หน้าต่าง Console ที่มีคำสั่ง gpupdate กำลังรันอาจปรากฏบน Desktop ของ User เป็นเวลาสั้น