这活儿我在公司机房和帮朋友修机时干过太多次了。Win10的自动更新和Windows Defender安全中心,算是系统里脾气最倔的两个组件——你明明只是想让电脑干活,它偏要在你演示到一半的时候强制重启装补丁;你好不容易装了个偏门破解工具或老软件,Defender转手就给你隔离掉。这篇文章不聊虚的,直接把我常用的禁用方案、脚本和踩坑记录全摆出来,大家照着抄作业就行。
先说清楚一个前提:禁用自动更新和Defender不是让系统裸奔,而是把控制权拿回自己手里。我在企业里管过上百台办公机,很多软件和驱动的兼容性测试必须在稳定版本上做,Windows那些“自动”行为确实会帮倒忙。个人电脑上如果你装了第三方安全软件(比如卡巴斯基、火绒这类),Defender本来就会自动让位,这属于正常协作。但如果你想彻底关掉它,或者想屏蔽更新,下面这些方法是经过验证的。
1. 为什么要禁用?先分清合理的场景
很多人一听说“禁用Defender”就觉得危险,其实得分场景。我自己在下面几种情况下会主动关掉更新和防护,不是乱来,是真的有需求:
企业办公的补丁节奏控制。公司IT部门如果用了WSUS或者专业管理工具,机器上的自动更新基本都会关掉,等管理员统一推送。不然几十台电脑各更各的,版本乱七八糟,出了问题都找不到是哪台机器搞的。这种场景下禁用的是“自动”这个动作,不是“更新”这个功能本身。
老电脑扛不住新补丁。我手里有台2012年的老本子,4G内存跑Win10本来就吃力,每次Defender后台扫描CPU直接飙到100%,更完补丁开机慢得能泡一碗面。这种硬件条件下,关闭后台扫描和更新确实能明显提流畅度。
软硬件兼容性测试。做开发测试时,某些驱动或加密狗软件会被新补丁弄失效,Defender也会误杀测试用的工具。这时候临时把防护和控制更新都停掉,测完再恢复,是标准操作。
装了第三方安全软件。这个最省心,Windows自己就有机制:检测到其他杀毒软件后,Defender会自动进入“被动模式”。但注意,它只是不实时扫描了,更新还会继续跑,所以有时候还得手动处理。
我的看法是:如果你不属于上面任何情况,就是一台正常上网的电脑,那我建议至少保留Defender的实时保护,只把自动更新改成“通知我”模式。安全这东西,多一层总比少一层踏实。
2. 核心思路:服务、组策略、注册表三条线并行
禁用Win10这些“自动行为”,本质上是通过不同层级的管理通道去压制系统组件。我习惯从三条线同时下手,这样最彻底——单改一项很容易被系统自己“修复”回来。
服务这条线针对的是后台进程本身。更新相关的服务叫Windows Update(服务名wuauserv),Defender相关的是WinDefend服务和SecurityHealthService。直接把服务停掉、启动类型改成“禁用”,进程就起不来了。但难点在于系统有“自我保护”机制,你刚改完,它下次开机又给你拉起来。
组策略这条线管的是配置逻辑。本地组策略编辑器(gpedit.msc)里有专门的“Windows更新”和“Windows Defender”策略节点,可以通过策略禁用它俩。这条线最稳,但Windows 10家庭版没有组策略编辑器,得先补个工具或用注册表替代。
注册表这条线是底层开关很多“策略本质是读写注册表”里对应的键值。直接改注册表虽然操作起来不如界面方便,但生效快、能过脚本批量部署。比如控制Windows Update自动更新的两个关键值,就是在HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate下设置NoAutoUpdate和AUOptions。
三条线里,组策略和注册表改的东西是系统真正会读的配置,服务只是执行单元。所以我的习惯是:先停服务应急,再用组策略或注册表固化配置,双保险。下面逐个展开。
3. 禁用Windows Update的完整方案
3.1 服务层面:停掉更新相关的四个服务
Win10的更新机制不是只有一个服务在干活,主服务停了,还有一堆辅助服务会触发它。我一般会处理这么几个:
| 服务名 | 显示名称 | 作用 |
|---|---|---|
| wuauserv | Windows Update | 主服务,负责下载安装更新 |
| UsoSvc | Update Orchestrator Service | 更新协调器,Win10 1709后新增,负责调度 |
| WaaSMedicSvc | Windows Update Medic Service | 更新“医生”,专门修复被禁用的更新服务 |
| bits | Background Intelligent Transfer | 后台传输,负责下载 |
操作步骤(管理员权限运行cmd或PowerShell):
sc config wuauserv start= disabled sc stop wuauserv sc config UsoSvc start= disabled sc stop UsoSvc sc config WaaSMedicSvc start= disabled sc stop WaaSMedicSvc注意WaaSMedicSvc这个服务,它是微软用来“治疗”更新组件的,你前脚禁用wuauserv,它后脚就能给恢复回来。这个服务在Win10 1809之后才出现,很多人只关前两个,没过几天发现更新又活了,十有八九就是它搞的鬼。
3.2 组策略:把“自动更新”彻底锁死
如果有本地组策略编辑器,这一步最省心。运行gpedit.msc,依次展开:
计算机配置 → 管理模板 → Windows组件 → Windows更新 → 管理策略模板
重点改两个策略:
配置自动更新:设为“已禁用”。这个策略就像总闸,关了之后系统不再自动下载安装更新。
删除使用所有Windows更新功能的访问权限:设为“已启用”。这招更狠,连设置里的Windows更新入口都给你抹掉,用户就算想手动检查也没处点。
改完执行gpupdate /force让策略立刻生效。这里有个容易忽略的细节:组策略的配置最终会写到注册表里,路径为HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate。所以有时候你没组策略编辑器,直接把这个键建出来,效果一样。
3.3 注册表直改:没组策略也能搞定
家庭版用户没有gpedit,那就直接上手改注册表。Win+R输入regedit,定位到:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate在WindowsUpdate下建一个子项AU,然后在AU里新建两个DWORD值:
| 值名称 | 数值 | 含义 |
|---|---|---|
| NoAutoUpdate | 1 | 关闭自动更新 |
| AUOptions | 2 | 设置为“下载前通知我” |
NoAutoUpdate设成1就是彻底不开自动更新;AUOptions设成2的意思是系统发现更新后只通知你,不下不装。如果想要完全静默,NoAutoUpdate=1就够用了。改完重启电脑生效。
再补充一个对Win10 20H2及之后的版本有效的注册表位置,控制的是“自动安装重启”的行为:
HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings在Settings下建DWORD,PendingRebootBootAttemptCount设为0,能缓解系统自动重启的问题。但从我这段时间折腾的经验看,光改这个还不够,前面几个步骤才是治本。
3.4 一键脚本汇总
上面几个步骤凑一起,就是一个完整的禁用脚本。我把它整理成bat文件,内容如下:
@echo off sc config wuauserv start= disabled sc stop wuauserv sc config UsoSvc start= disabled sc stop UsoSvc sc config WaaSMedicSvc start= disabled sc stop WaaSMedicSvc sc config bits start= demand sc stop bits reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoUpdate /t REG_DWORD /d 1 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v AUOptions /t REG_DWORD /d 2 /f gpupdate /force echo 禁用完成,建议重启电脑。 pause这里把bits设成demand而不是disabled,是因为有些软件下载功能会用到BITS,直接禁了可能误伤。改回“手动”让它需要时能启动但不常驻,比较稳。
4. Windows Defender安全中心:关闭与配置
4.1 先理解Defender的自我保护机制
Defender比更新服务难对付多了。它有两个自我保护机制专门防止你关它:篡改保护(Tamper Protection)和受控文件夹访问。篡改保护是Win10 1903之后加的,一旦开启,你通过注册表、组策略、命令行去改Defender的设置,它都会自动改回去。所以我第一件事永远是先去安全中心把篡改保护关掉。
路径:设置 → 更新和安全 → Windows安全中心 → 病毒和威胁防护 → 管理设置 → 把“篡改保护”关掉。
不关这个,后面操作全白搭。这是我在帮人远程处理时踩过最大的坑——注册表改了三遍,一刷新又变回去了,最后发现是篡改保护在作祟。
4.2 组策略关闭Defender(专业版及以上)
打开gpedit.msc,定位到:
计算机配置 → 管理模板 → Windows组件 → Microsoft Defender防病毒
把这个节点下的“关闭Microsoft Defender防病毒”策略设为“已启用”。这个策略是总开关,启用后Defender的实时保护会停掉,但安全中心界面还在,还能手动扫描。
如果想把安全中心整个入口也藏起来,还需要再设一个策略:
计算机配置 → 管理模板 → 系统 → 打开Windows安全中心服务,设为“已禁用”。
这样设置中心里就看不到病毒和威胁防护那一块了。但这里我要提醒一句:入口消失不等于功能消失,如果你在另一台机器上装了第三方杀软然后备份注册表,临到用的时候可能会因为Defender关键服务被禁用而出奇怪问题。企业环境建议通过真正有策略能力的平台统一配置,别光靠本机修改。
4.3 注册表方式关闭Defender实时保护
没有组策略编辑器的版本,还是靠注册表。路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender在Windows Defender这个键下建一个DWORD:DisableAntiSpyware,值设为1。
注意,这个键在较新的版本里不太好使,因为微软从某个版本开始让“篡改保护”重新覆盖这个键。实现方案是用DisableAntiVirus这个DWORD,同样设在Windows Defender下。不过说实话,如果你只是想让Defender别那么吵,我推荐的做法是“关闭实时保护”而不是“关闭整个Defender”。实时保护是扫描后台文件的,关掉后日常使用基本感知不到Defender存在,但手动扫描和病毒库更新还在,留了个保底。
关闭实时保护的位置在安全中心界面里就能点:病毒和威胁防护 → 管理设置 → 实时保护关掉。但这种方式是一次性的,系统重启或过一会儿会自动恢复。想长期关闭,还是要走策略或注册表。
4.4 自动化关闭脚本(含禁用服务)
同样整理成bat:
@echo off reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableAntiSpyware /t REG_DWORD /d 1 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableAntiVirus /t REG_DWORD /d 1 /f sc config WinDefend start= disabled sc stop WinDefend sc config SecurityHealthService start= disabled sc stop SecurityHealthService echo Defender已禁用,重启生效。 pause跑这个脚本前记得先手动关掉篡改保护。脚本里的WinDefend是Defender核心服务,SecurityHealthService是安全中心服务,这俩一停,安全中心打开会提示“服务已关闭”,但界面还能正常用。
5. 一键禁用组合工具的实际体验
上面两段说了手动操作和分步脚本,但实际日常处理中,我会把这些命令直接组合成一个工具脚本,配合一些现成工具来提升效率。
5.1 我常用的组合处理流程
从我用下来的经验看,处理一台新电脑的完整流程大概是这样:
- 先开安全中心,关闭篡改保护。
- 管理员权限运行禁更新脚本,把Windows Update相关服务停掉。
- 管理员权限运行禁Defender脚本,把策略写入注册表。
- 重启电脑。
- 重启后再检查一次服务状态,看有没有被系统自动拉起来。
为什么要重启后再检查?因为Win10的“更新协调器”有时候会在你开机时重新触发服务,但策略注册表已经写入了,它会读取策略然后保持在停止状态。这是我排除“禁用失效”类问题时的标准检查步骤。
5.2 现有工具与脚本的选型建议
网上能搜到很多“一键禁用”小工具,比如Windows Update Blocker,一个绿色小软件,界面就是个开关,原理跟我上面写的服务配置差不多,但没管组策略注册表那层。它的优点是简单、可视化,适合给普通人用;缺点是不够彻底,复发概率高。
我更倾向于自己写bat维护,原因有两个:第一,我能清楚知道哪些项被改了,出问题好排查;第二,团队内部批量部署的时候,bat可以配合管理平台推到所有机器上,而不是一台台戳UI。
还有一个常见工具是在命令行里暂停更新,比如usoclient配合参数,或者设置“暂停更新”到最大天数。这条路适合不想动策略、只是想让更新晚点来的普通用户。在:设置 → Windows更新 → 暂停更新,最多能停35天。到期后系统会强制下载安装,算是官方给的“文明”方案。
5.3 脚本执行时容易翻车的三个细节
我帮人处理过好多次“按教程做了还是失败”的求助,大部分翻车点在以下三处:
一是权限不够。bat脚本必须右键“以管理员身份运行”,普通双击即使当前账户是管理员,UAC没提权,sc命令会报“拒绝访问”。这是最常见的初级问题。
二是服务被篡改保护拉回去。Defender的服务WinDefend,被禁用后可能在你重启或者更新病毒库后重新变成自动。所以在禁用脚本跑完后,我还习惯在注册表的DisableAntiSpyware后追加一条disabledefender的双保险,让该服务的类型被覆盖为禁用启动。
三是组策略和注册表冲突。如果你之前用组策略手动设置过更新策略,再通过注册表修改时,两者会互相覆盖或产生冲突。表现为设置界面显示一个值,实际系统按另一个值走。处理办法是先把组策略里相关项设为“未配置”,再写注册表。
6. 常见问题与排查技巧实录
6.1 禁用后系统又自动更新了,怎么回事?
这个90%发生在只关了服务但没写注册表策略的情况下。Win10有个叫“更新协调器”(UsoSvc)的服务,它会在系统空闲时检查调度,如果发现Windows Update服务被禁,它会调起WaaSMedicSvc来修复。处理办法我上面已经说了,三个服务一块禁,再加注册表策略双保险。
另外一个隐蔽触发点是系统启动时的“预留重启”机制。有时候你只是关了个服务,系统里还有标记为待处理的更新任务,重启时它还是会把更新流程跑完。这时候需要清掉更新缓存文件夹:先停wuauserv和bits,再删除C:\Windows\SoftwareDistribution\Download下的所有文件,然后重启。
6.2 Defender关闭后怎么重新开启?
需要恢复的场景也很大概率遇到,比如系统出现问题想检测一下,或者新装的第三方杀软到期了。恢复方法走的是逆向流程:
- 注册表里删除
DisableAntiSpyware和DisableAntiVirus两个值,或者把值改成0。 - 服务设置分重置为自动:
sc config WinDefend start= auto。 - 如果组策略里把Defender关了,进
gpedit.msc把它改回“未配置”。 - 取消“篡改保护”设置的恢复动作。
这里有个坑:如果你当时是通过组策略关闭的Defender,那策略不改回来,注册表改了也没用,因为组策略优先级更高。反过来也一样。所以排查恢复问题时,先看看是走的那条配置通道,统一用同一条通道恢复。
6.3 把系统更新全套禁用后,不影响其他软件的更新吧?
不影响。Windows Update只管系统补丁和驱动更新,第三方软件(比如Chrome、微信、Office)都有自己的更新机制。但有个隐藏关联:某些国产办公软件会调用Windows Update服务来检查自身组件更新,你把wuauserv禁了,这些软件会报“更新失败”之类的提示。这种情况就在软件设置里把自动更新关掉,别通过恢复系统服务来解决。
还有一个容易被忽略的是Microsoft Store应用更新。Store的更新也走BITS服务,如果你把bits设成disabled,Store应用下载会卡住。所以我在前面的脚本里特意把bits留成“手动”,就是为这个留后路。
6.4 禁用Defender后系统变卡的奇怪案例
有个案例挺有意思:我给一台机器彻底关了Defender,结果它反而更卡了。排查发现是Windows Search索引服务在疯狂重建索引(因为Defender原来改过文件时间戳等元数据),跟禁用本身没关系。但给了个教训——系统组件间耦合比想象中深,关掉一个主服务,可能让另一个服务变得异常活跃。
遇到这类问题,建议先在任务管理器里看是谁占的CPU/磁盘,别一上来就怀疑是禁用脚本出了问题。
6.5 更新和Defender反复自动恢复的处理套路
如果已经按上面的方法把服务全禁了、注册表也写了,过几天又恢复,那就是遇到了Windows的“计划任务”拉活机制。Win10会在系统里埋几个计划任务,定时检查更新状态并恢复。处理方法是清掉这些计划任务:
schtasks /change /tn "\Microsoft\Windows\WindowsUpdate\Scheduled Start" /disable schtasks /change /tn "\Microsoft\Windows\WindowsUpdate\Scheduled Start With Network" /disable schtasks /change /tn "\Microsoft\Windows\WindowsUpdate\sih" /disable schtasks /change /tn "\Microsoft\Windows\WindowsUpdate\sihboot" /disable schtasks /change /tn "\Microsoft\Windows\Windows Defender\Windows Defender Scheduled Scan" /disable这是最终的兜底方案。写进原来的脚本里,能解决绝大多数“禁不干净”的抱怨。
6.6 安全中心示警“服务已关闭”怎么办?
Defender服务被禁用后,Windows安全中心会一直显示红色警示条“病毒防护已关闭”,虽然不影响使用但碍眼。要消除它,可以用注册表做“静默模式”:
路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender Security Center\Notifications建DWORD,DisableNotifications设为1。安全中心就不弹警示了。注意别乱改其他键,有些值会影响防火墙配置的显示,改错会导致安全中心打不开。
7. 写在最后的几点体会
折腾过几十台机器的更新和Defender之后,我的结论是:禁用要分层次,别一把梭。如果你只是嫌更新烦,用设置里的“暂停更新”加上组策略“通知我”,体验最平衡——系统不会偷偷装更新,但也不会让你裸奔。只有企业环境或测试环境才需要走“全禁+批量脚本”的路线,并且一定要记得在机器上留一份恢复脚本,不是自己用,是方便接手的人。
有人问过我这个方案做完是不是就“一劳永逸”了。我的回答是:同一版本系统内,这套方案能比较稳地撑到你下次重装;但Win10每隔半年就有一次大版本更新,更新机制和Defender策略代码会被改版,到时候大概率还要重新适配一遍方案。这也是我不推荐普通人去到处找“永久禁用”工具的另一个原因——没有真正永久,只有阶段性可控。对大多数读者,我的建议仍是优先用第三方杀软自动接管或组策略温和控制,把“禁用”当成特殊场景的应急手段,别当成日常标配。