Trong bài viết này, chúng tôi sẽ chỉ cách cập nhật cài đặt Group Policy (GPO) trên máy tính Windows trong miền Active Directory: cách cập nhật (làm mới) Group Policies tự động, cách sử dụng lệnh GPUpdate, cách cập nhật từ xa bằng Group Policy Management Console (GPMC.msc) hoặc cmdlet PowerShell Invoke-GPUpdate.
Cách thay đổi khoảng thời gian làm mới Group Policy?
Trước khi các cài đặt mới bạn đặt trong Group Policy cục bộ hoặc miền (GPO) được áp dụng cho máy khách Windows, dịch vụ Group Policy Client phải đọc các chính sách và thực hiện thay đổi đối với cài đặt Windows. Quá trình này gọi là Cập nhật Group Policy. Cài đặt GPO được cập nhật khi máy tính khởi động, người dùng đăng nhập, và được làm mới tự động trong nền mỗi 90 phút + độ lệch thời gian ngẫu nhiên 0–30 phút (tức là cài đặt chính sách chắc chắn sẽ được áp dụng trên máy khách trong 90–120 phút sau khi bạn cập nhật tệp GPO trên bộ điều khiển miền).
Mặc định, bộ điều khiển miền cập nhật cài đặt GPO thường xuyên hơn: mỗi 5 phút.
Bạn có thể thay đổi khoảng thời gian cập nhật GPO bằng tùy chọn Set Group Policy refresh interval for computers nằm trong Computer Configuration -> Administrative Templates -> System -> Group Policy của GPO.
Bật chính sách và đặt thời gian (phút) cho các tùy chọn sau:
- This setting allows you to customize how often Group Policy is applied to computers (0 đến 44640 phút) tần suất máy khách làm mới cài đặt GPO trong nền. Nếu đặt 0 ở đây, chính sách sẽ được cập nhật mỗi 7 giây (không nên làm vậy);
- This is a random time added to the refresh interval to prevent all clients from requesting Group Policy at the same time (0 đến 1440 phút) là giá trị tối đa của khoảng thời gian ngẫu nhiên được thêm làm độ lệch cho tham số trước (dùng để giảm số lượng cuộc gọi đồng thời từ máy khách đến DC để tải tệp GPO).
Lưu ý rằng cập nhật GPO thường xuyên làm tăng lưu lượng đến bộ điều khiển miền và dẫn đến tải mạng cao hơn.
Sử dụng lệnh GPUpdate.exe để buộc làm mới cài đặt GPO
Tất cả quản trị viên đều biết lệnh gpupdate.exe cho phép cập nhật cài đặt Group Policy trên máy tính. Để làm điều đó, hầu hết dùng lệnh gpupdate /force không chút do dự. Lệnh này buộc máy tính đọc tất cả GPO từ bộ điều khiển miền và áp dụng lại tất cả cài đặt. Điều này có nghĩa là khi khóa force được dùng, máy khách kết nối với bộ điều khiển miền để lấy tệp cho TẤT CẢ các chính sách nhắm đến nó. Điều này có thể dẫn đến tải cao hơn trên mạng và bộ điều khiển miền của bạn.
Lệnh gpudate đơn giản không có tham số chỉ áp dụng cài đặt GPO mới và đã thay đổi.
Nếu thành công, thông báo sau xuất hiện:
Updating policy... Computer Policy update has completed successfully. User Policy update has completed successfully.
Nếu một số chính sách hoặc cài đặt không được áp dụng, hãy dùng lệnh gpresult để chẩn đoán vấn đề và làm theo hướng dẫn trong bài viết Common Problems Causing Group Policy To Not Apply.
Bạn có thể cập nhật chỉ cài đặt GPO của người dùng:
gpupdate /target:user
hoặc chỉ cài đặt chính sách máy tính:
gpupdate /target:computer /force
Nếu một số chính sách không thể cập nhật trong nền, gpupdate có thể đăng xuất người dùng hiện tại:
gpupdate /target:user /logoff
Hoặc khởi động lại máy tính (nếu thay đổi GPO chỉ có thể áp dụng khi Windows khởi động):
gpupdate /Boot
Cách buộc cập nhật GPO từ xa từ Group Policy Management Console (GPMC)?
Trong Windows Server 2012 và mới hơn, bạn có thể cập nhật cài đặt Group Policy trên máy tính miền từ xa bằng GPMC.msc (Group Policy Management Console).
Trong Windows 10, bạn sẽ phải cài đặt RSAT để sử dụng bảng điều khiển GPMC:
Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0
Sau đó, sau khi thay đổi bất kỳ cài đặt nào, hoặc tạo và liên kết GPO mới, chỉ cần nhấp chuột phải vào Organizational Unit (OU) bạn muốn trong GPMC và chọn Group Policy Update trong menu ngữ cảnh. Trong cửa sổ mới, bạn sẽ thấy số lượng máy tính GPO sẽ được cập nhật. Xác nhận buộc cập nhật chính sách bằng cách nhấn Yes.
Sau đó, GPO sẽ được cập nhật từ xa trên từng máy tính trong OU lần lượt, và bạn sẽ nhận được kết quả với trạng thái cập nhật group policy trên các máy tính (Succeeded/Failed).
Tính năng này tạo một tác vụ trong Task Scheduler với lệnh GPUpdate.exe /force cho mỗi người dùng đã đăng nhập trên máy tính từ xa. Tác vụ chạy trong khoảng thời gian ngẫu nhiên (tối đa 10 phút) để giảm tải mạng.
Để tính năng cập nhật GPO từ xa GPMC hoạt động trên máy khách, các điều kiện sau phải được đáp ứng:
- Cổng TCP 135 phải được mở trong quy tắc Windows Defender Firewall;
- Dịch vụ Windows Management Instrumentation và Task Scheduler phải được bật.
Nếu máy tính bị tắt hoặc tường lửa chặn truy cập vào nó, thông báo ‘The remote procedure call was canceled. Error Code 8007071a’ xuất hiện bên cạnh tên máy tính.
Thực tế, tính năng này hoạt động giống như việc bạn cập nhật cài đặt GPO thủ công bằng lệnh GPUpdate /force trên từng máy tính.
Invoke-GPUpdate: Buộc cập nhật Group Policy từ xa qua PowerShell
Bạn cũng có thể gọi cập nhật GPO từ xa trên máy tính bằng cmdlet Invoke-GPUpdate PowerShell (là một phần của RSAT). Ví dụ, để cập nhật từ xa cài đặt chính sách người dùng trên một máy tính cụ thể, bạn có thể dùng lệnh sau:
Invoke-GPUpdate -Computer "frparsrv12" -Target "User"
Nếu bạn chạy cmdlet Invoke-GPUpdate không có tham số, nó sẽ cập nhật cài đặt GPO trên máy tính hiện tại (giống gpudate.exe).
Kết hợp với cmdlet Get-ADComputer, bạn có thể cập nhật GPO trên tất cả máy tính trong một OU cụ thể:
Get-ADComputer –filter * -Searchbase "OU=Computes,OU=Mun,OU=DE,dc=woshub,dc=com" | foreach{ Invoke-GPUpdate –computer $_.name -force}
hoặc trên tất cả máy tính đáp ứng yêu cầu cụ thể (ví dụ, trên tất cả máy chủ Windows Server trong miền):
Get-ADComputer -Filter {enabled -eq "true" -and OperatingSystem -Like '*Windows Server*' }| foreach{ Invoke-GPUpdate –computer $_.name –RandomDelayInMinutes 10 -force}
Bạn có thể đặt độ lệch ngẫu nhiên để cập nhật GPO bằng RandomDelayInMinutes. Như vậy, bạn có thể giảm tải mạng nếu cập nhật cài đặt Group Policy trên nhiều máy tính cùng lúc. Để áp dụng cài đặt Group Policy ngay lập tức, tham số RandomDelayInMinutes 0 được dùng. Lệnh Invoke-GPUpdate trả về lỗi sau cho máy tính không khả dụng:
Invoke-GPUpdate: Computer "frparsrv12" is not responding. The target computer is either turned off or Remote Scheduled Tasks Management Firewall rules are disabled.
Nếu bạn chạy cmdlet Invoke-GPUpdate từ xa hoặc cập nhật GPO từ GPMC, một cửa sổ bảng điều khiển với lệnh gpupdate đang chạy có thể xuất hiện trên desktop người dùng trong một thời gian ngắn.