如何用PowerShell禁用Windows Server 2012R2自动更新(无需外部模块)
解决方案:用原生PowerShell/批处理禁用Windows自动更新
没问题,我来给你梳理一下在Windows Server 2012 R2上无需第三方PowerShell模块,直接用原生工具禁用Windows自动更新的方法——完全对应你手动通过组策略设置的效果。
其实你通过gpedit.msc设置的「配置自动更新→禁用」,本质就是修改了系统注册表的特定项,而且Windows Server 2012 R2和2008使用的是同一个注册表路径,不用担心版本差异。
1. 对应的注册表项详情
组策略中「配置自动更新」的禁用设置,对应修改以下注册表项:
- 路径:
HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU - 键名:
NoAutoUpdate - 值类型:
DWORD - 值:
1(1=禁用自动更新,0=启用)
2. PowerShell实现(优先推荐)
注意:必须以管理员身份运行PowerShell
执行以下命令即可完成设置,会自动创建不存在的注册表路径:
# 创建Windows Update AU策略路径(如果不存在) New-Item -Path "HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" -Force | Out-Null # 设置禁用自动更新的键值 Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoUpdate" -Value 1 -Type DWord # 可选:重启Windows Update服务让设置立即生效 Restart-Service -Name wuauserv -Force
3. 批处理实现
同样需要以管理员身份运行CMD,执行以下脚本:
@echo off REM 创建必要的注册表路径 reg add "HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" /f >nul 2>&1 REM 设置禁用自动更新的键值 reg add "HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoUpdate /t REG_DWORD /d 1 /f >nul 2>&1 REM 可选:重启Windows Update服务 net stop wuauserv >nul 2>&1 net start wuauserv >nul 2>&1 echo Windows自动更新已禁用 pause
验证设置是否生效
你可以通过以下方式确认设置成功:
- 重新打开
gpedit.msc,查看「配置自动更新」是否已设为「禁用」 - 检查注册表编辑器中上述路径的
NoAutoUpdate值是否为1 - 打开Windows Update设置,会提示「某些设置由你的组织管理」
内容的提问来源于stack exchange,提问作者Noam




