no-defender 快速指南:禁用 Windows Defender 与防火墙,并一键还原
【免费下载链接】no-defenderA slightly more fun way to disable windows defender + firewall. (through the WSC api)项目地址: https://gitcode.com/GitHub_Trending/no/no-defender
手动停服务去关 Windows Defender 很繁琐,重启后状态也容易恢复。no-defender 通过 Windows 安全中心(WSC)接口解决这个痛点:一条命令禁用 Defender 或防火墙,一条命令还原。禁用期间机器没有实时防护,用完必须恢复。
适用场景速览
先判断自己属于哪一类,场景在右列的话,请不要使用这个工具。
| 适合使用 no-defender 的场景 | 不建议使用的场景 |
|---|---|
| 隔离实验室、测试机、软件兼容性验证 | 生产服务器、存放敏感数据的机器 |
| 临时关闭实时防护排查误报,或关闭防火墙做网络行为测试 | 需要长期无人值守、长时间离线的机器 |
| 一次性操作,用完立即恢复 | 期望防护永久关闭、或操作后不打算恢复 |
动手前准备
这一节确认权限、环境、文件三个前置条件,并留下改动前的参照记录。
- 以管理员身份打开 PowerShell(普通权限下 WSC 接口调用会失败)
- 系统中 Windows 安全中心组件正常,
wscsvc服务可运行 no-defender-loader可执行文件放在固定目录:该仓库已因 DMCA 下架,目前主要保留说明文档(详见 README.md),如果你手上有此前下载的可执行文件,放置后不要移动或删除——跨重启持久化依赖这个文件- 已记录 Defender 与防火墙的当前状态
记录现状:
Get-Service WinDefend Get-NetFirewallProfile | Select Name, Enabled预期结果:WinDefend为Running,三个防火墙配置文件(Domain、Private、Public)的Enabled均为True。把这两条命令的输出保存下来,供操作后对比。
禁用、验证、还原三步走完完整链路
这是整个操作的主线,每一步都先说明系统在做什么,再给命令,最后告诉你怎么确认成功。
第一步,禁用 Defender
工具通过 WSC 接口上报"有一台第三方杀毒在场",安全中心收到上报后自动关闭 Defender 实时保护——第三方杀毒产品历来就是这样通知系统的。
no-defender-loader --av预期结果:安全中心界面不再提示 Defender 实时防护。注意被关闭的是实时保护,WinDefend宿主服务本身通常仍在运行。
第二步,验证禁用结果
判断依据只有一个开关:实时保护,不要只看服务状态。
Get-MpComputerStatus | Select RealTimeProtectionEnabled预期结果:RealTimeProtectionEnabled为False,即禁用生效。
第三步,一键还原
--disable会撤销此前的第三方杀毒上报,安全中心随之自动恢复 Defender 与防火墙。
no-defender-loader --disable预期结果:Get-NetFirewallProfile | Select Name, Enabled中三个配置文件的Enabled全部回到True,Get-MpComputerStatus的RealTimeProtectionEnabled回到True。
no-defender 全部参数与三个常用组合
下表覆盖工具的全部开关,完整说明见 README.md 的 Usage 段落。
| 参数 | 作用 | 备注 |
|---|---|---|
--av | 禁用 Defender | 可单独使用 |
--firewall | 禁用 Windows 防火墙 | 可单独使用,不影响 Defender |
--av --firewall | 同时禁用两者 | 两参数同命令行组合 |
--name "名称" | 指定 WSC 上报的产品名称 | 默认为github.com/es3n1n/no-defender |
--disable | 重新启用 Defender 与防火墙 | 用完后必须执行 |
--help/--version | 显示帮助 / 版本 | — |
三个常用组合:
同时关闭两者,并给上报产品一个可识别的名称:
no-defender-loader --av --firewall --name "My Test AV"只关防火墙,Defender 保持原样:
no-defender-loader --firewall测试结束,一次性还原:
no-defender-loader --disable禁用为什么能跨重启保持,系统会留下什么痕迹
⚠️ 这是最容易出问题的环节。WSC 上报在重启后不会自动保留,所以工具会把自己写入系统自启动项,每次开机重新上报一次。这决定了还原必须先于删除文件。
系统里会留下两处痕迹:
- 一条 no-defender 启动项(任务管理器 → 启动,或注册表 Run 键可查到)
- 磁盘上保留的
no-defender-loader可执行文件
干净移除的顺序(必须"先还原,再删除"):
- 执行
no-defender-loader --disable恢复防护 - 手动删除对应的启动项记录
- 确认可删除二进制文件
顺序颠倒的话,启动项会残留在系统里变成失效条目。
如何交叉确认开关处于预期状态
无论"关"还是"开",都从三层交叉核对,三处一致才算可靠。
- 服务层:
Get-Service wscsvc应为Running(WSC 服务是开关的执行通道);WinDefend状态与预期一致——再次强调,防护被关不等于宿主服务被停。 - 功能层:
Get-NetFirewallProfile三个配置文件的Enabled符合预期,Get-MpComputerStatus的RealTimeProtectionEnabled符合预期。 - 界面层:安全中心页面可正常操作,不出现"由组织管理"或灰置提示。
禁用不生效时怎么处理
先按现象定位,再用由浅入深的命令确认。
| 现象 | 最可能原因 | 处理办法 |
|---|---|---|
执行--av后状态没变化 | wscsvc服务异常,WSC 通道不通 | 用Get-Service wscsvc检查服务,必要时重启该服务 |
| 重启后防护恢复 | 可执行文件被删,或启动项失效 | 确认文件是否还在原位置,确认启动项有效后再重启验证 |
| 安全中心页面空白或灰置 | 安全中心组件异常 | 查看 Defender 运行日志,必要时执行系统映像修复 |
| 显示"由组织管理" | 组策略或注册表被外部工具修改 | 检查组策略与注册表,移除异常策略项 |
由浅入深的排障命令:
Get-Service wscsvcGet-WinEvent -LogName "Microsoft-Windows-Windows Defender/Operational" -MaxEvents 10若运行日志指向组件级异常、且怀疑系统文件损坏,再执行系统级修复:
sfc /scannow DISM /Online /Cleanup-Image /RestoreHealth安全红线
- 用完必须还原:测试结束后执行
--disable恢复防护,不要让系统长期处于无实时保护状态。- 运行依赖文件不要删:需要跨重启保持时,
no-defender-loader二进制文件不能删除或移动。- 不要多份上报并存:同一台机器上不要同时存在多个"第三方杀毒"声明,容易造成策略冲突。
- 环境区别对待:生产环境先评估风险再动手;测试环境也应确认机器离线、隔离后再关闭防护。
高频问题
Q:仓库里现在只剩文档,可执行文件从哪里来?A:上游项目已因 DMCA 下架,发布包与源码被清除,仓库目前主要保留文档。如果你手上此前下载过可执行文件,可继续使用。
Q:禁用后WinDefend服务会被停掉吗?A:不会。工具通过 WSC 接口关闭的是实时保护,WinDefend宿主服务可能仍是Running,这属于正常现象。
Q:执行了--disable后为什么仍显示被禁用?A:先检查启动项是否还在重复上报,确认还原之后才删除二进制文件。若仍未恢复,检查 WSC 服务状态与 Defender 运行日志。
Q:可以永久保持禁用状态吗?A:工具不会把"防护关闭"写进组策略,持久化机制只是启动项。也不建议让任何机器长期没有实时保护。
收好这一轮操作
整个过程就是一个固定节奏:操作前留底,操作中验证,操作后还原。改动前先记录现状,每次禁用与还原后都用Get-MpComputerStatus核对,最后用--disable把防护收回。按这个顺序执行,一次临时禁用就是可控且可清理的。
【免费下载链接】no-defenderA slightly more fun way to disable windows defender + firewall. (through the WSC api)项目地址: https://gitcode.com/GitHub_Trending/no/no-defender
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考