PowerShell可通过六种方法关闭Win10自动更新:一、停止并禁用wuauserv等核心服务;二、写入组策略注册表禁用自动更新;三、清空SoftwareDistribution缓存并重注册组件;四、禁用Windows Update计划任务;五、创建防火墙规则阻止联网;六、运行整合脚本一键执行全部操作。

如果您希望使用命令行方式高效、批量地控制Windows 10自动更新行为,PowerShell提供了原生、免GUI、可脚本化的管理能力。以下是通过PowerShell关闭Win10自动更新的多种可行方法:
一、停止并禁用Windows Update相关服务
该方法直接干预系统核心服务运行状态,使Windows Update无法启动或恢复,是即时生效的基础性阻断手段。
1、以管理员身份打开PowerShell:右键“开始”按钮 → 选择“Windows PowerShell(管理员)”。
2、依次执行以下命令,每行输入后按回车:
net stop wuauserv
net stop bits
net stop dosvc
net stop usoSvc
3、将上述服务启动类型永久设为“禁用”:
Set-Service -Name wuauserv -StartupType Disabled
Set-Service -Name bits -StartupType Disabled
Set-Service -Name dosvc -StartupType Disabled
Set-Service -Name uosvc -StartupType Disabled
二、通过PowerShell调用组策略设置(适用于专业版/企业版)
该方法等效于手动在gpedit.msc中配置“配置自动更新”策略,利用PowerShell直接写入注册表策略路径,确保系统策略层彻底禁用更新逻辑。
1、在管理员PowerShell中运行以下命令启用本地组策略对象(如未初始化):
Invoke-Expression "gpupdate /force"
2、执行策略写入命令,禁用自动更新功能:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoUpdate" -Value 1 -Force
3、强制启用“删除使用所有Windows更新功能的访问权限”策略:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "DisableWindowsUpdateAccess" -Value 1 -Force
4、刷新组策略使变更立即生效:
gpupdate /force
三、清空Windows Update缓存并重置状态
该操作清除已下载但未安装的更新文件及元数据,防止系统在服务重启后自动续传或触发强制安装流程。
1、确保wuauserv等服务已停止(参考第一部分步骤)。
2、在管理员PowerShell中执行以下清理命令:
Remove-Item -Path "$env:windir\SoftwareDistribution\*" -Recurse -Force -ErrorAction SilentlyContinue
3、重新注册Windows Update相关组件:
regsvr32.exe /s wuapi.dll
regsvr32.exe /s wuaueng.dll
regsvr32.exe /s wucltui.dll
regsvr32.exe /s wups.dll
regsvr32.exe /s wuweb.dll
四、使用PowerShell禁用Windows Update任务计划程序作业
Windows Update依赖多个计划任务触发后台扫描与下载,禁用这些任务可切断其自动化调度链路。
1、在管理员PowerShell中列出所有Windows Update相关任务:
Get-ScheduledTask -TaskPath "\Microsoft\Windows\WindowsUpdate\" -ErrorAction SilentlyContinue
2、批量禁用全部匹配任务:
Get-ScheduledTask -TaskPath "\Microsoft\Windows\WindowsUpdate\" -ErrorAction SilentlyContinue | Disable-ScheduledTask
3、特别确认关键任务是否已禁用:
Get-ScheduledTask -TaskName "Scheduled Start" -TaskPath "\Microsoft\Windows\WindowsUpdate\" | Disable-ScheduledTask
五、通过PowerShell配置防火墙规则阻止Windows Update联网
该方法从网络层实施隔离,即使服务意外启用也无法连接微软更新服务器,形成双重保险机制。
1、创建出站防火墙规则,阻止Windows Update核心进程访问互联网:
New-NetFirewallRule -DisplayName "Block Windows Update Outbound" -Direction Outbound -Program "$env:windir\System32\svchost.exe" -RemoteAddress * -Action Block -Enabled True -Profile Domain,Private,Public -EdgeTraversalPolicy Block
2、添加精准匹配规则,仅针对Windows Update服务宿主进程(需指定服务SID):
$svcSid = (Get-CimInstance -ClassName Win32_Service -Filter "Name='wuauserv'").SID
New-NetFirewallRule -DisplayName "Block WU Service Network Access" -Direction Outbound -Service "wuauserv" -RemoteAddress * -Action Block -Enabled True -Profile Domain,Private,Public
3、验证规则已生效:
Get-NetFirewallRule -DisplayName "Block Windows Update Outbound" | Select-Object DisplayName,Enabled,Action
六、部署一次性禁用脚本(全自动整合版)
该脚本合并前述全部关键操作,支持单次运行完成全链路关闭,适用于批量部署或快速修复场景。
1、新建文本文件,粘贴以下完整脚本内容:
$ErrorActionPreference = "SilentlyContinue"
Stop-Service wuauserv,bits,dosvc,usoSvc -Force
Set-Service wuauserv,bits,dosvc,usoSvc -StartupType Disabled
if (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU")) { New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Force }
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoUpdate" -Value 1 -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "DisableWindowsUpdateAccess" -Value 1 -Force
Get-ScheduledTask -TaskPath "\Microsoft\Windows\WindowsUpdate\" | Disable-ScheduledTask
Remove-Item -Path "$env:windir\SoftwareDistribution\*" -Recurse -Force
Write-Host 所有自动更新组件已停用,缓存已清除,策略已写入,任务已禁用 -ForegroundColor Green
2、将文件保存为 Disable-WindowsUpdate.ps1。
3、在管理员PowerShell中执行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
.\Disable-WindowsUpdate.ps1











