通过命令行编辑 Windows 更新 GPO

通过命令行编辑 Windows 更新 GPO

我正在尝试找到一种以编程方式编辑 Windows 更新组策略的方法。我有一个本地 WSUS 服务器,我想将 Windows 的新安装指向该服务器。理想情况下,我只想有一个可以运行的脚本来执行此操作,而不是进入 gpedit.msc > 管理工具 > windows 更新 > 设置内部网服务器。

我考虑过编辑注册表作为替代方案,但遇到了麻烦。首先,不同操作系统的条目不同,这不是什么大问题,但很烦人。不过,主要问题是,在较旧的操作系统配置(例如 Windows XP)中,服务器地址会显示在每台计算机上的一大堆奇怪而独特的位置。例如:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{2975F3DE-F18A-9CE1-A731-5E6723AC64FD}Machine\Software\Policies\Microsoft\Windows\WindowsUpdate

据我所知,在安装之前没有办法确定注册表项名称,因此我无法正确设置项。我一般也对通过注册表执行此操作持谨慎态度,因为我不能 100% 确信这是 GPO 中唯一的更改(幕后还有其他事情发生吗?)

根据评论进行更新

@Ben - 我知道这不是使用 GPO 的理想方式,我更受限于这样一个事实:我看不到任何其他方式来指定我的 WSUS 服务器而不会出现注册表问题,而不是希望使用 GPO。目前没有设置活动目录,所以据我所知,我无法设置每个人都继承的全局 GPO,如果可以避免,我不想设置一个。

@Jason - 有两个问题,首先,这仅设置注册表值,我已经可以在 cmd 中执行此操作,其次,我不能 100% 确定我们使用的所有计算机是否都安装了 powershell。而且,在这一点上,这是一个先有鸡还是先有蛋的问题 - 旧版 XP 需要 WSUS,WSUS 是它获取 Powershell 的地方,它需要 Powershell 来设置 WSUS。

@Ryan - 我认为这些并不是唯一更改的注册表设置。至少在 Windows 7 帐户中,它会更改您在 HKLM 和 HKEY_USERS 中记录的条目,据我所知。但是,在 Windows XP 机器上仅设置这些值不允许计算机连接到 WSUS 服务器,它只是出错了。不过,我会重试。第二次编辑:刚刚在空白的 XP SP3 机器上尝试过这个,它无法通过仅设置以下内容连接到服务器:

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate /v “WUServer”/t REG_SZ /dhttp://我的服务器

reg 添加 HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate /v “WUStatusServer”/t REG_SZ /dhttp://我的服务器

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v “UseWUServer”/t REG_DWORD /d 1

答案1

您可以使用 PowerShell 来更新组策略。以下是示例:

设置 gpregistryvalue -name "WU" -key HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate -ValueName "WUServer", "WUStatusServer" -type 字符串 -Value "http://wsus01.internal.local:8530

在这里您可以了解更多有关 powershell 的奇妙之处:

http://technet.microsoft.com/en-us/library/ee461027.aspx

或者更好的答案:

步骤 1:设置 Active Directory
步骤 2:将计算机加入 Active Directory 域
步骤 3:配置组策略以将计算机指向 WSUS 服务器
步骤 4:获利

答案2

组策略中的大多数 Windows 更新设置都是在计算机级别设置的,而不是在用户级别。此外,无需担心直接通过注册表进行此操作。这是组策略中的管理模板实际影响的唯一内容。

所有“Windows Components\Windows Update”设置都存储在这两个键中:

HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU

“指定内联网 Microsoft 更新服务位置”策略特别设置了以下值:

  • WUServer(根键中的 REG_SZ)
  • WUStatusServer(根键中的 REG_SZ)
  • UseWUServer(AU 键中的 REG_DWORD)

通过使用 gpedit 手动设置策略,然后查看注册表中发生了哪些更改,很容易就能准确地看到设置的内容。如果您喜欢冒险,还可以打开实际的管理模板文件来查看发生了什么。在 Vista+ 上,它是 WindowsUpdate.admx。我不记得在 XP 及更早版本上它是什么,但它应该是 .adm。

*编辑:显然不清楚 OP 是试图编写本地策略设置还是域策略设置的脚本。此答案专门用于在单台计算机上编辑本地策略设置。

相关内容