组策略是许多组织今天使用的流行Active Directory服务。如果您的组织使用组策略,那么您很可能熟悉gpupdate命令,更具体地说是gpupdate /force
命令。
您知道gpupdate在做什么吗?您是否需要使用force参数?如果是的话,什么情况下使用是有意义的?
在本文中,您将了解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启动组策略客户端服务。此服务负责发现并应用新的组策略设置。
2. 然后,组策略客户端服务会联系计算机的登录DC,并检查是否有新的GPO或现有GPO的更新可用。
3. 如果组策略客户端服务发现任何新的GPO,或者您使用gpedit.msc在本地更改了任何GPO,则该过程会处理所有客户端端扩展(CSEs),先处理计算机设置,然后处理用户设置。
组策略客户端服务会在应用程序和服务日志\Microsoft\Windows\GroupPolicy\Operational下记录事件。

4. 完成后,组策略客户端服务将等待直到下一次刷新间隔,默认为90分钟加上最多30分钟的随机偏移。
一些组策略设置需要用户注销或重新启动计算机才能生效。如果其中之一是策略的一部分,gpupdate 将要求注销或重新启动计算机。
臭名昭著的/force
开关解释
现在你知道运行gpupdate
时发生了什么基本情况。到目前为止,一切似乎都很正常,对吧?在典型情况下,运行gpupdate
并允许其完成过程是完全可以的。但也有一些情况下,你需要强制执行一些操作。
gpupdate中最广泛使用的参数之一是/force
开关。这个开关在每个IT专业人员的脑海中都被认为是必需的开关,与流行的观念相反,在某些情况下实际上是不需要的。
默认情况下,gpupdate是智能的;它会将所有当前设置与任何新设置进行比较,并仅应用它们。但是,你也可以使用/force
开关强制gpupdate重新应用全部设置。为什么需要这样做呢?
有时,设置会偏离其预期值。例如,如果用户禁用了由现有策略控制的 Windows 功能,运行gpupdate /force
将强制组策略客户端服务重新评估该值并将其返回到预期值。或者,也许,您想将用户重新添加到一个被移除的受限组中。
组策略客户端服务定期重新应用一些设置,例如安全设置(默认间隔为 16 小时)。
使用/force
开关的最大原因是当处理只能在登录或启动时应用的设置时。当发生这种情况时,即使新的设置不需要这样的操作,Windows 也会提示您每次运行gpupdate /force
时注销或重新启动。
深入了解 Gpupdate 的参数
现在您已经基本了解了 gupdate 的工作原理,并且知道何时以及如何使用/force
开关,让我们现在关注 gpupdate 提供的所有其他功能。
获取帮助
正如预期的那样,gpupdate 命令可以提供有关每个参数及其功能的信息。虽然缺乏深度,但/?
在您需要快速了解如何执行特定任务时很方便。

定位计算机或用户设置
默认情况下,gpupdate 告诉组策略客户端服务同时处理计算机和用户设置。如果您只需要刷新其中一个设置集,可以使用/target
参数。
您在使用 /target
参数时有两个选项;您可以使用 /target:computer
或 /target:user
来定位计算机或用户设置。
您应该只在特定情况下使用
/target
参数,特别是首先定位用户设置,然后是计算机设置。为什么呢?有时策略会有重叠的用户和计算机设置。当发生这种情况时,用户设置会覆盖计算机设置,可能会导致意外行为。
创建超时
Gpupdate 通常运行得很快,但是如果出现不响应的 DC 或组策略客户端服务的问题,可能会中断该进程。如果您在运行 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都不会注销。

为了确保在此场景中注销,您还必须使用/force
开关。
强制自动重启
与/logoff
开关类似,/boot
开关在Windows无法在后台处理任何计算机设置时自动重新启动计算机。 /boot
开关通常用于针对计算机的软件安装。
强制同步处理
组策略客户端服务可以并行(异步)或逐个(同步)应用策略。 Windows仅在用户登录和计算机启动时同步处理策略,否则异步处理。
在同步处理期间,组策略客户端调用其所有CSE,即使没有设置更改也是如此。 同步处理是必要的,因为某些设置依赖于其他设置。
您可以将/sync
开关与/target: user
或/target:computer
结合使用。只能在以管理员身份运行命令窗口时使用/sync
开关。否则,您将看到下面的访问被拒绝错误消息。


异步处理是优化域用户登录体验的一种方式。在Windows XP之前,所有策略处理都是同步的,唯一的缺点是一些设置需要两次登录或两次重启才能生效。自Windows XP以来,默认模式现在是异步的。
结论
如果您跟着本文,现在应该清楚gpupdate的作用以及如何使用其开关来更改其行为。如果您有兴趣在更大范围内使用gpupdate或者与其自动化,请务必检查其PowerShell对应项, Invoke-GPUpdate
。