强制 Group Policy 更新可确保新的或已更改的设置会立即生效,而不是等待标准的 90–120 分钟刷新周期。管理员可以使用 gpupdate /force 命令、Group Policy Management 控制台,或使用 Invoke-GPUpdate 的 PowerShell 来触发更新。尽管 /force 会重新应用所有 GPO,但可能会给域控制器带来压力,因此在确需紧急重新应用时,最好有选择地使用。
想象一下,你接到了一通电话,来自负责你防火墙和代理服务器的安全专家。他告诉你,他为访问互联网的用户新增了一个额外的代理服务器。你添加了一个新的 GPO,影响所有用户,使他们能够通过 Internet Explorer 使用新的代理服务器。通常,新 GPO 的应用需要 90 到 120 分钟,但你需要立即应用新的设置,而且你无法要求用户先注销再重新登录以应用这些设置。在这种情况下,你可能希望绕过在后台策略处理开始之前的正常等待时间。你可以使用命令提示符、Group Policy Management 控制台(GPMC)或 PowerShell 来实现。
GPUupdate 是什么
组策略(Group Policy)是 Active Directory 的一项宝贵功能,使管理员能够将多种设置应用到用户和计算机。为了保障安全与提高效率,必须及时应用对组策略对象(GPO)的更改以及新的 GPO。
因此,只要域成员计算机重新启动,或用户登录到该计算机,组策略就会自动刷新。此外,它还会在预定义的后台刷新间隔内自动更新(默认情况下,每 90 分钟更新一次,并带有最多 30 分钟的随机偏移)。
不过有时,管理员需要立即将 GPO 设置应用到客户端系统,例如在创建新策略或对现有策略进行重要更改时。此外,有时他们不仅希望应用变更,还希望重新应用通常未被更改的 GPO,以便撤销本地计算机上所做的、非预期的更改。
本文将指导你通过哪些方式强制刷新组策略。
GPUpdate 与 GPUpdate /force 命令对比
gpupdate /force 命令是用于更新组策略(Group Policy)最常用的命令之一。 /force 开关允许管理员重新应用所有策略设置。 然而,需要考虑的是,使用 /force 开关会对域控制器(Domain Controllers, DC)造成显著负载,尤其是在环境中存在大量组策略对象(Group Policy Objects, GPO)时。
如果你的租户规模较大,或 GPO 的数量很多,建议在实施新的策略设置时运行 gpupdate,但不要使用 /force 开关。此方法只会接收更改或新的组策略,从而降低客户端和域控制器(Domain Controllers)的工作负载。
下载组策略最佳实践电子书
立即下载如何强制更新组策略
要强制更新组策略,你可以使用以下任一选项:
- gpupdate /force 命令
- 组策略管理控制台(GPMC)
- PowerShell
先决条件:在应用 GPO 之前配置防火墙
在使用这些选项中的任意选项强制重新应用 GPO 之前,请确保防火墙允许在相应端口上的入站网络流量(默认情况下为 TCP 端口 135),具体说明见 Microsoft documentation。
使用命令提示符强制更新组策略
gpupdate 是用于对 Active Directory 计算机进行组策略更新的 Microsoft 命令行 shell 命令。它包含在所有 Windows OS 版本中。
参数 /force
在不带任何参数运行 gpupdate 命令时,仅会应用已更改的策略设置和新的 GPO。但有时你还需要重新应用所有未更改的 GPO——例如,用于撤销本地管理员(或已入侵其账户的对手)所做的不期望修改。
在这种情况下,你需要按如下方式使用 /force 参数:
gpupdate /force
在使用此参数来更新 组策略设置 时,需要注意两个关键考虑点:
- 你必须亲自到每台用户计算机上,并手动运行 gpupdate /force 命令。(要远程更新计算机,请使用下面所述的 PowerShell。)
- 使用 /force 开关可能会对 DC 和客户端带来显著负载,尤其是在环境中存在大量 GPO 的情况下。在这些情况下,建议运行 gpupdate ,不要带 /force 参数。
其他参数
在用户已登录到该计算机的情况下运行 gpupdate 会立即将新的 GPO 设置提供给 Windows(当然前提是域控制器已具备已复制的 GPO 信息)。
如果用户未登录,在 Windows XP 及更高版本中,默认情况下 GPO 设置只会在下次登录时处理。但如果使用合适的开关,gpupdate 可以判断新更改的项目是否需要注销或重启才能生效:
- /Logoff – 使用此开关将判断策略更改是否要求用户注销。如果不需要,则会立即应用新的设置;如果需要,则会自动注销用户,Group Policy setting 将在用户再次登录时应用。
- /boot – 同样,如果启用了快速启动(Fast Boot),则需要重新启动才能应用带有“软件分发(Software Distribution)”设置的 GPO。运行gpupdate 并使用 /boot 开关会判断策略中是否存在需要重启的内容,并自动重启计算机。如果更新后的 GPO 不需要重启,则会应用 GPO 设置,且用户保持登录状态。
/Logoff 和 /boot 开关都是可选的。
还可以结合 /force
- /Logoff– 在组策略设置更新后,将用户注销。
- /Sync – 将前台(启动/登录)处理更改为同步。
- /Target - 指定是仅为用户还是仅为计算机更新策略设置。默认情况下,会同时更新用户和计算机的策略设置。
- /Boot – 应用组策略设置后,重新启动计算机。
使用组策略管理控制台(Group Policy Management Console,GPMC)强制更新组策略
强制更新 Windows 组策略的第二种方法是使用组策略管理控制台。虽然 gpupdate 命令会为所有 OU 更新所有策略,但 GPMC 允许你将更新限制到特定的 OU。请执行以下步骤:
- 打开 GPMC(组策略管理控制台)
- 将 GPO 链接到某个 OU。
- 右键单击所需的 OU,然后选择“Group Policy Update”选项。
- 在出现的“Force Group Policy Update”对话框中,点击“Yes”确认操作。
使用 PowerShell 在计算机上远程强制更新组策略
要远程更新组策略,你需要使用 PowerShell。自 Windows Server 2012 起,你可以使用该 cmdlet Invoke-GPUpdate 来强制在 Windows 客户端计算机上进行组策略远程更新。你需要同时安装 PowerShell 和组策略管理控制台。该 cmdlet 不会产生任何输出。
使用 Involve-GPUpdate 进行远程组策略更新的示例
使用 Invoke-GPUpdate 这个 cmdlet 的另一个优势在于,“RandomDelayInMinutes” 选项允许你调整延迟时间。如果你想进行立即的组策略(Group Policy)更新,请将其设置为 0,如下所示:
Invoke-GPUpdate –Computer LHE-LT-ADAM -RandomDelayInMinutes 0
在此示例中,标识为“LHE-LT-ADAM”的计算机在启动组策略(Group Policy)更新后立刻被重新启动。该 cmdlet 不会产生任何输出。使用此参数的唯一缺点是用户会看到一个 cmd 窗口弹出。
如果你想强制对所有计算机进行更新,请运行下面的代码。它会从域中获取所有计算机,将它们放入变量中,并为每个对象执行相应的命令。
$compgpoupd = Get-ADComputer -Filter *
$compgpoupd | ForEach-Object -Process {Invoke-GPUpdate -Computer $_.name -RandomDelayInMinutes 0 -Force}
使用 RandomDelayInMinutes 参数的唯一缺点是用户会看到一个 cmd 窗口弹出。
该代码会从域中获取所有计算机,将它们放入变量中,然后为每个对象执行命令。
在应用 GPO 之前先配置防火墙
在打开 GPMC 之前,请确保防火墙允许特定端口的入站网络流量。从 Windows Server 2012 开始,在组策略编辑器中有一个名为“ The Group Policy Remote Update Firewall Ports”的入门 GPO,用于验证是否已为远程计划任务管理配置 TCP 端口 135。
使用 GPO 启用 Windows 防火墙(高级安全性):
- 启动组策略管理界面。
- 在导航窗格中展开以下内容:Forest (YourForestName) => Domains (YourDomainName) => Group Policy Objects: (YourDomainName) => 右键单击要编辑的 GPO,然后选择 Edit。
- 在导航栏中,选择 Group Policy Management Editor,选择 Computer Configuration => Policies => Windows Settings => Security Settings => Windows Firewall with Advanced Security => Advanced Security for Windows Firewall.
GPO 后台刷新
当达到后台刷新间隔时,所有组策略客户端都会处理 GPO,但只处理那些自客户端上次请求以来是新的或已发生更改的 GPO。
不过,就安全设置而言,组策略引擎的工作方式不同。它只会为 security policy 设置请求一种特殊的后台刷新。该机制称为 background security refresh,并且适用于每个版本的 Windows Server。每隔 16 小时,每个组策略客户端都会向 Active Directory 查询所有包含安全设置的 GPO(不仅是发生了更改的那些),并重新应用这些安全设置。这样可以确保:如果客户端上的某个安全设置发生了更改(即在组策略引擎“背后”被改动),那么它会在 16 小时内自动恢复到正确的设置。
本地 GPO 的后台刷新流程
如前所述,你可能需要强制刷新组策略(Group Policy)的一个关键原因是:本地管理员(或对手,或已经入侵了他们的账号!)可能会对其机器上的设置进行更改,从而使你通过 GPO 设置的策略失效。这些更改可能会损害生产力,甚至危及安全。例如,本地管理员可能会覆盖你“禁止使用 USB 驱动器”的 GPO 设置,从而既能实现数据窃取,也能引入恶意软件。
因此,应仅在确实需要时才授予本地管理员权限。绝不应将本地管理员权限授予普通用户。
强制重新应用非安全组策略设置
如上所述,常规后台更新仅适用于新的和已更改的 GPO。不过,你可以修改常规后台刷新,使其在即使 GPO 没有发生变化的情况下也重新应用某些设置。这是一种修复与安全无关的漏洞利用(exploits)的良好方式。
具体而言,你可以选择在每次初始策略处理和后台刷新期间,强制重新应用以下组策略(Group Policy)区域:
- 注册表(管理模板)
- Microsoft Edge 维护
- IP 安全
- EFS 恢复策略
- 无线策略
- 磁盘配额
- 脚本
- 安全
- 文件夹重定向
- 软件安装
- 有线策略
Netwrix 如何提供帮助
组策略(Group Policy)是管理 Windows 基础设施设置的极其强大的方式。但它也同样复杂。事实上,经过多年的兼并与收购、员工更替、技术变更等,组策略几乎不可能仅依靠手动方法和原生工具来有效管理。
Netwrix PolicyPak 简化组策略管理,并让您能够清理和整合 GPO。其结果是,您的组织将获得更快的登录、更高的安全性、更好的正常运行时间以及更少的错误配置。
申请免费试用:简化组策略管理
结论
在整个 IT 环境中保持组策略(Group Policy)设置为最新状态,对提升生产力、保障安全、满足合规要求等至关重要。尽管 GPO 更改会在下一个刷新间隔时自动应用;但你也可以强制刷新,以便立即生效。作为额外的安全措施,你可以确保某些组策略设置即使未发生变化也始终会被重新应用,从而回退本地管理员所做的任何不希望的更改。
常见问题
如何更新组策略?
要手动更新组策略,管理员可以使用 gpupdate /force 命令、组策略管理控制台(GMPC)或 PowerShell。 /force 开关使管理员能够重新应用所有策略设置
gpupdate /force 会做什么?
组策略会根据后台刷新计划自动更新。不过,有时需要让更新或新策略更快生效,或者组织需要撤销本地管理员所做的错误策略更改。遇到这种情况,管理员可以使用 /force 参数,通过 gpupdate 命令立即应用组策略更新。
使用 gpupdate /force 更新组策略需要多长时间?
强制更新组策略所需的时间取决于正在应用的策略数量。更新少量策略可能只需要几分钟,但通常该过程包括 90 分钟的应用时间,以及用于工作负载分配的 30 分钟延迟。
什么是GPupdate?
它还解释了后台刷新机制的工作原理以及如何验证策略是否正确应用。
组策略是Windows管理员用来在加入域的计算机上强制执行安全设置、软件配置和用户环境控制的机制。默认的刷新周期为每90分钟一次,对于时间敏感的更改来说太慢。
本指南涵盖了强制立即更新组策略的三种方法:使用gpupdate命令,Group Policy Management 控制台和PowerShell。
Windows 会在安全事件日志中捕获 GPO 更改事件,但不会记录之前的配置值,也不会以汇总视图呈现更改。
GPupdate 是一个 Windows 命令行工具,用于触发本地计算机上的 Group Policy 刷新。它会联系域控制器,检索自上次刷新以来的任何策略更改,并将其应用于计算机和用户配置。没有额外参数时,gpupdate 仅处理已更改或新的策略,跳过已应用的策略。
gpupdate 与 gpupdate /force:何时使用各自
命令 gpupdate 自 Windows XP 和 Windows Server 2003 起可用。它在登录用户上下文和本地 SYSTEM 账户下运行,分别应用用户端和计算机端策略。
域控制器默认每五分钟刷新一次组策略。成员工作站和服务器使用90分钟的间隔,加上最多30分钟的随机偏移,以减少域控制器的负载。
Group Policy Objects 在 Active Directory 中控制密码策略、软件部署、登录脚本、安全基线和桌面配置。当您修改 GPO 或将新的 GPO 链接到组织单位(OU)时,该更改直到下一次计划刷新完成后才会传达到终端。
- 您正在排查GPO是否正确应用
- 策略设置已被手动在本地移除或覆盖
该 /force 开关会覆盖该逻辑,并重新应用所有范围内的策略,无论域控制器是否报告了任何更改。每个GPO都会从头开始重新处理。
- 软件安装策略失败,需要重试
- 您最近链接了一个新的GPO,需要立即在整台机器上执行
Use gpupdate 不带 /force 当您已部署新的或修改过的GPO,并且只想让终端在下一个预定周期之前应用更改时。使用 gpupdate /force 当:
Netwrix Auditor 跟踪 Active Directory 中组策略对象的每一次更改,记录是谁修改了 GPO、发生了什么变化以及之前的配置值。下载免费试用版。
运行 gpupdate 不带 /force 参数只会应用自上次刷新以来发生更改的策略。如果 Windows 判断策略已经是最新的,则跳过重新处理。这对于常规刷新很有效,但当策略被标记为未更改但仍需重新应用时,会留下空白:例如,在注册表编辑、应用失败或手动删除策略设置之后。
/force 开关会给域控制器增加少量负载,因为它处理所有范围内的策略,而不仅仅是增量。在拥有大量GPO的环境中,避免在大量机器上同时运行该命令,除非对请求进行错开。 switch adds marginal load to the domain controller, since it processes all in-scope policies rather than only the delta. In environments with a large number of GPOs, avoid running it simultaneously across large machine sets without staggering the requests.
如何强制更新组策略
方法1:命令提示符
强制更新 Group Policy 的最直接方法是从提升权限的命令提示符或 PowerShell 窗口运行它。
基本语法:
以管理员身份打开命令提示符,然后运行命令。输出将显示:
完整参数参考:
针对特定的政策领域:
方法 2:Group Policy Management Console (GPMC)
如果更新的策略需要注销或重启才能生效,gpupdate会提示您。某些软件安装和文件夹重定向策略无法应用于正在运行的会话,需要重新登录。
步骤:
权限提升说明: gpupdate 需要提升权限的会话才能应用计算机端策略。未提升权限运行时仅处理用户端策略,且可能返回不反映完整策略状态的成功消息。
Use /target:computer 当您更新了计算机端的策略,例如 security policy 设置、启动脚本或软件限制,并且不需要刷新用户端设置时使用。对于用户端更改,如登录脚本、文件夹重定向或软件安装,请使用 /target:user。
组策略管理控制台允许您在不单独登录每台计算机的情况下,向特定OU中的所有计算机推送强制组策略更新。此功能自Windows Server 2012起提供,使用计划任务远程运行 gpupdate /force 命令到每台目标计算机。
- 展开您的域,然后导航到包含您想要更新的计算机的OU。
- 打开 Group Policy Management(
gpmc.msc)。 - 右键单击 OU 并选择 组策略更新。
远程 Group Policy 更新的防火墙要求:
- 确认对话框会询问您是否要强制对 OU 中的所有计算机进行组策略更新。点击 是。
5. Remote Group Policy update results 窗口打开,显示OU中每台计算机的更新状态。
- 远程计划任务管理(RPC): TCP 动态端口
重要: GPMC远程更新不会在所有计算机上同时触发。Windows会将请求分散在一个10分钟随机延迟窗口内,以防止所有计算机同时联系域控制器。验证策略应用时,请将此延迟窗口考虑在内。
GPMC远程更新通过WMI和RPC在每台目标计算机上创建计划任务。必须在目标机器上启用三个Windows防火墙入站规则:
- Windows Management Instrumentation (WMI-In): TCP 所有端口
- 远程计划任务管理(RPC-EPMAP): TCP端口135
要部署 Starter GPO:
3. 为新的GPO命名,并将其链接到包含目标计算机的OU。
- 在 GPMC 中,展开您域下的 Starter GPOs。
4. 导航到 计算机配置 > 策略 > Windows 设置 > 安全设置 > Windows Firewall with Advanced Security。
2. 右键点击 Group Policy Remote Update Firewall Ports 并选择 New GPO from Starter GPO。
方法3:Invoke-GPUpdate(PowerShell)
要求:
5. 确认三个入站规则存在且设置为启用。
Invoke-GPUpdate 是用于强制远程计算机更新 Group Policy 的 PowerShell 命令,无需在每个目标上开启控制台会话。它是包含在 Remote Server Administration Tools (RSAT) 中的 GroupPolicy 模块的一部分。
- 在管理计算机上安装了Group Policy Management功能的RSAT
您可以通过组策略手动启用这些规则,或使用内置的 Group Policy Remote Update Firewall Ports Starter GPO 自动部署,该 GPO 可在 GPMC 的 Starter GPOs 节点中找到。
- 支持 Windows 8 及 Windows Server 2012 及更高版本
强制对单个远程计算机进行更新:
强制更新域中的所有计算机:
- 目标计算机上启用了PowerShell远程(
Enable-PSRemoting)
设置 -RandomDelayInMinutes 0 使更新立即执行。省略此参数以使用默认的随机行为。
强制更新特定OU中的所有计算机:
完整参数参考:
Netwrix Auditor跟踪Active Directory中Group Policy Objects的每次更改,记录是谁修改了GPO、发生了什么变化以及之前的配置值。下载免费试用版。
将更新范围限定为OU是首选方法,当 Group Policy setting 仅适用于部分计算机时,可减少域控制器的不必要负载。
Group Policy后台刷新如何工作
Netwrix Auditor记录每次Group Policy Object更改,确保您的团队拥有合规审计所需的审计追踪。下载免费试用版。
默认刷新间隔:
组策略无需手动干预即可保持最新。后台策略刷新机制会根据组策略客户端服务控制的计划自动应用更新的策略。
- 域控制器: 每5分钟一次,无随机偏移。
PowerShell 远程是关键依赖项。如果目标计算机阻止 WinRM 流量,Invoke-GPUpdate 将返回连接错误。在大规模运行之前,请确认已启用 WinRM 并加载了 GroupPolicy 模块。有关通过 PowerShell 管理 Group Policy 的更广泛参考,主要的 Group Policy PowerShell 命令 涵盖了最常见的管理任务。
- 客户端计算机(工作站和成员服务器): 每90分钟一次,加上0到30分钟的随机偏移。该偏移防止数百台机器同时联系域控制器。
这些间隔仅适用于后台刷新。前台策略应用在计算机启动和用户登录时运行,会在桌面出现前同步处理策略。
- 安全设置: 即使没有进行任何更改,Windows也会每16小时在此固定间隔重新应用安全设置,以防止本地偏差,无论更改检测报告如何。
仍然需要 gpupdate /force 的情况:
使用 gpresult 验证策略应用:
强制更新后,请确认策略已正确应用:
后台刷新设计上会跳过未更改的策略。如果本地覆盖或注册表编辑在周期之间更改了策略值,Windows 不会检测到差异,也不会在下一次前台策略应用之前进行修正。
您可以通过组策略本身修改刷新间隔:计算机配置 > 管理模板 > 系统 > 组策略 > 为计算机设置组策略刷新间隔。 基础间隔和最大随机偏移量可分别配置。
强制特定策略区域始终重新应用
运行 gpupdate /force 会重新应用所有策略并纠正任何本地偏差。遵循有关变更控制的 Group Policy 最佳实践 可减少紧急强制更新的频率。
此命令输出应用于当前用户和计算机的GPO摘要。要导出完整的HTML报告:
默认情况下,某些策略区域,包括 Group Policy 首选项和软件安装策略,如果已成功应用,即使运行 gpupdate /force 也不会重新处理。您可以在 GPO 级别覆盖此行为。
打开报告并查看Denied GPOs和Not Applied GPOs部分。列出的GPO表示存在强制更新无法自行解决的筛选或链接问题。
为您想强制重新处理的每个扩展启用“即使组策略对象未更改也处理”设置。
Netwrix Auditor如何帮助您跟踪和审计Group Policy更改
这些设置全局适用于所有范围内的GPO。在整个域中启用软件安装策略的强制重新处理,会导致在每个刷新周期内对每个客户端运行软件检查和修复,显著增加网络和域控制器的负载。请有选择地启用,并在广泛部署前在试点OU中测试。
在组策略管理编辑器中,导航到 Computer Configuration > Administrative Templates > System > Group Policy(针对计算机端设置)或 User Configuration > Administrative Templates > System > Group Policy(针对用户端设置)。
一次GPO编辑可能会禁用Windows防火墙、削弱密码执行或授予数百台机器的提升访问权限,而Windows本地事件日志无法显示更改的全部范围或更改者。
对 Group Policy Objects 的未经授权更改是导致安全配置错误、privilege escalation和合规偏离的已记录路径。
Netwrix Auditor跟踪Active Directory中组策略对象的每次修改,记录修改前后的值、修改者及时间。
安全团队可以配置针对高风险GPO修改的警报,并生成满足HIPAA、PCI DSS、SOX及类似框架要求的审计准备报告。Active Directory auditing 要求的审计准备报告。
对于需要证明符合正式Windows 审核策略的组织,Netwrix Auditor 提供审计人员所需的前后证据。
请求演示,了解 Netwrix 如何帮助您跟踪 Group Policy 更改,审核 Active Directory 修改,并在您的 Windows 环境中保持持续可见性。
关于使用 gpupdate /force 强制更新组策略的常见问题
分享到
了解更多
关于作者
Jonathan Blackwell
软件开发负责人
自 2012 年以来,工程师兼创新者 Jonathan Blackwell 一直提供工程领导力,使 Netwrix GroupID 成为 Active Directory 和 Azure AD 环境中群组与用户管理领域的领先者。他在研发、市场与销售方面的经验,使 Jonathan 能够全面理解 Identity 市场以及买家如何思考。