☰
一条命令禁用 Windows Defender 与防火墙:no-defender 全场景操作与故障定位
2026/10/23 4:31:17 网站建设 项目流程

一条命令禁用 Windows Defender 与防火墙:no-defender 全场景操作与故障定位

【免费下载链接】no-defenderA slightly more fun way to disable windows defender + firewall. (through the WSC api)项目地址: https://gitcode.com/GitHub_Trending/no/no-defender

软件冲突、杀毒误报、隔离测试需要临时关掉防护时,手动停服务再改组策略既慢又容易出错,重启后还全部打回原形。no-defender 是一款走 Windows 安全中心(WSC)接口的开源工具,一条命令就能禁用 Windows Defender 或关闭 Windows 防火墙,也支持一键还原。

它凭什么能关掉 Defender:WSC 接口原理

Windows 内置一个 WSC(Windows Security Center)服务,第三方杀毒产品通过它向系统通报"我已经就位",系统收到这条声明后就会自动停用 Defender。no-defender 不动注册表、不改组策略,而是向 WSC 上报"本机已存在第三方杀毒"这一条声明,防护控制权随之交接——正规杀毒软件就是靠这条通道接管防线的。

和手动改组策略相比,区别在于:开关走的是系统自身认可的接口,不逐项修改任何策略条目,还原时同样只需一条命令。

提示:WSC 接口没有公开文档,该工具是对其反向实现,原理细节可参考项目文档的 How it works 一节。

动手前:确认环境并记录系统基线

动手之前必须做一件事:用管理员权限打开 PowerShell,把系统现状查一遍,输出留底,之后好做对比。

先查 Defender 宿主服务:

Get-Service WinDefend

作用:查看WinDefend当前是Running还是Stopped。

再查三种网络配置文件下的防火墙开关:

Get-NetFirewallProfile | Select Name, Enabled

作用:列出域、专用、公用三种配置下防火墙各自的状态,True表示启用。

然后是工具本身。上游仓库曾因 DMCA 被下架,目前仓库内以说明文档为主;如果本地已有no-defender-loader可执行文件,可以直接跳到下一节:

git clone https://gitcode.com/GitHub_Trending/no/no-defender cd no-defender

作用:把项目拉取到当前目录。

三种场景:临时禁用、跨重启保持、恢复防护

场景一:临时禁用 Defender(--av)

第一条禁用命令,只关 Defender:

no-defender-loader --av

作用:向系统声明已有第三方杀毒在场,Windows 随即自动停用 Defender。

执行完马上验证一次:

Get-MpComputerStatus | Select RealTimeProtectionEnabled

作用:禁用生效后,RealTimeProtectionEnabled应为False。

注意:执行后宿主服务可能仍在运行,真正被关闭的是实时保护,不是服务本身,不要只盯着服务状态。

场景二:跨重启保持禁用

要让禁用效果在重启后依然有效,工具会自动把自己写入自启动项。前提是:no-defender的可执行文件必须一直保留在磁盘上——文件一删,持久化随之失效。

提示:启用持久化后,系统启动项里会多出一条记录,属于预期行为。若要彻底清理,应先执行no-defender-loader --disable还原,再移除自启动项。

重启后验证持久化是否生效:

Get-MpComputerStatus | Select RealTimeProtectionEnabled

作用:重启后重跑一次,状态仍为False即持久化成功。

场景三:恢复防护(--disable)

测试结束、不再需要禁用时,一条命令还原:

no-defender-loader --disable

作用:撤销之前声明的"在场杀毒",重新启用 Defender 与 Windows 防火墙。

还原后交叉确认:

Get-NetFirewallProfile | Select Name, Enabled

作用:确认三个防火墙配置文件全部回到True。

Get-MpComputerStatus | Select RealTimeProtectionEnabled

作用:实时保护应恢复为True。

参数按使用场景组合

下表按使用场景整理了常用参数组合:

使用场景参数示例命令
只关 Defender--avno-defender-loader --av
只关 Windows 防火墙--firewallno-defender-loader --firewall
两者同时关闭--av --firewallno-defender-loader --av --firewall --name "My Test AV"
重新启用(还原)--disableno-defender-loader --disable
查看帮助 / 版本--help/--versionno-defender-loader --help

其中--name用来指定向 WSC 上报的"在场杀毒"名称,不指定则使用默认名;完整参数说明见 README Usage 段落。

禁用不生效的排查路径:服务层、日志层、系统文件层

命令执行了、防护状态却没变化时,别急着怀疑工具,按服务层 → 日志层 → 系统文件层的顺序逐级往下查。

服务层:wscsvc 与 WinDefend 状态

Get-Service wscsvc

作用:检查 WSC 服务状态。WSC 是禁用命令的执行通道,这个服务异常时,命令会表现得像执行成功了,防护状态却纹丝不动。

同时核对WinDefend宿主服务状态是否与预期一致——关闭防护不等于停掉宿主服务,两者是两回事。

日志层:读 Defender 运行事件

Get-WinEvent -LogName "Microsoft-Windows-Windows Defender/Operational" -MaxEvents 10

作用:读取最近的 Defender 运行事件,判断是被策略拦截还是组件本身异常。

系统文件层:完整性修复

若怀疑系统文件损坏,再做完整性修复:

sfc /scannow

作用:扫描并修复系统文件。

DISM /Online /Cleanup-Image /RestoreHealth

作用:修复系统映像,排除底层文件损坏导致的开关失灵。

常见现象速查

下表按"你看到什么"整理了对应的排查入口:

遇到什么情况先查什么命令对应解法
关掉了,重启后又恢复重启后重跑Get-MpComputerStatus核对可执行文件与自启动项是否仍在生效,参考跨重启场景
界面显示"由组织管理"与基线记录比对组策略 / 注册表被外部工具改动过,--disable后还原
安全中心界面空白、灰色Get-Service wscsvc安全中心相关组件异常,先处理组件问题
扫描或实时保护不可用Get-MpComputerStatus核对 Defender 实时保护或引擎状态,处理后重新验证

用完之后的安全守则

  • 用完尽快执行--disable恢复防护,别让系统长时间失去实时保护。
  • 可执行文件在确认不再需要禁用前别删,持久化依赖自启动项,删文件会让禁用失效。
  • 把关键验证命令的输出存档,方便下次对比。
  • 同一时间不要让多个"在场杀毒"声明并存,避免策略互相打架。
  • 生产环境关闭防护前先评估风险,隔离 / 测试环境可以放宽。

高频问题

Q:刚关掉了,重启后 Defender 又回来了,是哪里出了问题?A:持久化靠的是自启动项。文件被删掉、或者自启动项失效,重启后系统就会自行恢复。先确认文件还在磁盘上、自启动项生效,然后重启再验证一次状态。

Q:如何确认 Defender 和 Windows 防火墙都真的关掉了?A:用Get-MpComputerStatus看实时保护,用Get-NetFirewallProfile看防火墙开关,再翻一遍 Defender 运行日志,三处状态一致才算关闭彻底。

Q:测试做完之后必须还原吗?A:必须。除了隔离 / 测试环境,建议尽快执行no-defender-loader --disable把实时保护找回来。

哪些环境该用,哪些不该用

隔离 / 测试环境、需要验证防护开关的行为时,是 no-defender 的合适场景;生产环境则先评估风险再决定是否关防护。不管哪种环境,节奏都应该是:先记录基线,再按需操作,用完执行--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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询