☰
Windows Defender 为什么关不掉?no-defender 的 3 级阶梯修复与完整排查指南
2026/10/23 2:48:12 网站建设 项目流程

Windows Defender 为什么关不掉?no-defender 的 3 级阶梯修复与完整排查指南

【免费下载链接】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 是一款基于 WSC(Windows Security Center)API 的工具,能让 Windows Defender 和防火墙以"检测到其他杀毒软件接管"的方式优雅退出,比直接改注册表、停服务更干净。读完并操作完本文,你将能够独立判断工具失效的原因,按 3 个层级逐级恢复,并在 5 分钟内用命令验证防护确实处于禁用状态。

症状对照:快速定位 no-defender 失效的场景 ⚠️

先看下面这张表,找到和你眼前状况最接近的一行,再跳到对应章节:

现象可能原因修复层级
终端提示no-defender-loader不是内部或外部命令未加入 PATH,或下载不完整L1 基础环境检查
命令执行成功,但安全中心仍显示 Defender 在防护WSC 接管未生效,多为工具过旧或与第三方杀毒冲突L2 执行与验证
重启后 Defender 又回来了自启动项被删除或被第三方安全软件清理L3 重启保持
安装第三方安全软件后行为异常多个 WSC 供应商互相覆盖L4 冲突处理

30 秒自检:先确认工具能不能跑、Defender 当前什么状态。

# PowerShell:打印工具版本(能输出版本号说明工具可用) no-defender-loader --version # 查看 Defender 服务当前状态 sc.exe query WinDefend
:: CMD:同上两条 no-defender-loader --version sc query WinDefend

前置提醒:开始前请确认两件事。其一,以管理员身份打开终端(右键"以管理员身份运行");其二,先退出所有第三方杀毒软件,避免 WSC 供应商互相覆盖。另外记住随时可回滚:执行no-defender-loader --disable即可重新启用 Defender 与防火墙。

对号入座,比盲目操作更能省下排查时间。

阶梯修复:从轻到重逐级尝试 🔍

按 L1 到 L4 的顺序逐级尝试,每层都有明确的通过标准,未通过再进入下一层。

L1 · 基础环境检查:确认工具可用且有管理员权限

这一层解决"命令跑不起来"的问题——权限不足或工具版本过旧占了绝大多数失败案例。

操作步骤:

  1. 以管理员身份打开 PowerShell 或 CMD。
  2. 执行版本命令,确认工具可被调用。
  3. 确认当前账户属于 Administrators 组。
# 打印工具版本,输出版本号即代表工具可用 no-defender-loader --version # 列出当前用户所属用户组,结果应包含 \\...\administrators whoami /groups | Select-String -Pattern "administrators" # 查看 Defender 服务当前状态(L1 只做观察,不做更改) sc.exe query WinDefend
:: CMD:打印工具版本 no-defender-loader --version :: CMD:查看当前用户所属组,应包含 administrators whoami /groups | findstr /i "administrators" :: CMD:查看 Defender 服务当前状态 sc query WinDefend

✅ 通过标准:--version输出版本号;组列表中能看到administrators。

⚠️风险:本层全部是只读检查,无副作用。若版本输出异常(乱码、报错),回到 L4 重新获取工具即可,无需回退。

若上一步未生效,继续往下。

L2 · 执行禁用命令:确认 WSC 接管生效

这一层是核心操作:通过 WSC API 向 Windows 宣告"已有其他杀毒软件接管",Defender 随即退位,防火墙可一并关闭。

操作步骤:

  1. 确认 L1 通过。
  2. 执行禁用命令,需要关防火墙就加上--firewall。
  3. 立即查询服务状态验证结果。
  4. 打开安全中心,确认供应商信息已变更。
# 仅禁用 Defender(默认注册名即工具自身标识) no-defender-loader --av # 需要同时关闭防火墙时加上该参数 no-defender-loader --av --firewall # 验证:Defender 服务状态 sc.exe query WinDefend # 验证:防火墙配置(预期为 not running) netsh advfirewall show allprofiles state
:: CMD:仅禁用 Defender no-defender-loader --av :: CMD:同时关闭防火墙 no-defender-loader --av --firewall :: CMD:验证 Defender 服务状态 sc query WinDefend :: CMD:验证防火墙状态 netsh advfirewall show allprofiles state

✅ 通过标准:WinDefend的 STATE 为STOPPED(或启动后 10 秒内回到 STOPPED);netsh输出Firewall Protection: OFF;安全中心供应商一栏不再是 Microsoft Defender。

⚠️风险:禁用期间系统处于无防护状态。回退方法:执行no-defender-loader --disable重新启用,然后重启一次。

特别留意:README 里--disable的说明是 "re-enable firewall/defender",即重新启用,和参数字面意思相反,别指望它"禁用得更彻底"。若仍未恢复,继续往下。

L3 · 保持重启后的禁用效果:自启动排查

Defender 有自我保护机制,重启后可能自动恢复。no-defender 通过写入自启动项,在每次开机时重新向 WSC 申报接管来维持效果,所以自启动项是这个工具的生命线。

操作步骤:

  1. 重启一次系统。
  2. 重启后立即查询 Defender 服务状态。
  3. 确认工具文件仍保留在磁盘原位置(自启动指向的就是它)。
  4. 若失效,重新执行 L2 禁用命令,并检查第三方安全软件是否清理了自启动。
# 重启完成后立即执行:查询 Defender 服务是否保持停止 sc.exe query WinDefend # 确认工具文件还在原目录(自启动指向此文件,被删则重启失效) Get-ChildItem -Path . -Filter "no-defender*"
:: CMD:重启后查询 Defender 服务状态 sc query WinDefend :: CMD:确认工具文件仍在原目录 dir no-defender*

✅ 通过标准:重启后WinDefend仍为STOPPED,且安全中心供应商显示为第三方。

⚠️风险:自启动项会常驻系统,日后想彻底清理时,先用--disable恢复,再删除对应启动项(工具目录及开机自启条目)。

关于工具自启动限制的完整说明,见项目文档 README.md。若仍未恢复,继续往下。

L4 · 第三方安全软件冲突处理

这一层处理"装了别的杀毒/优化工具后 no-defender 行为异常"的场景:多个软件都通过 WSC 申报供应商时,会互相覆盖,导致时灵时不灵。

操作步骤:

  1. 逐一卸载/退出第三方安全与系统优化工具。
  2. 执行--disable恢复正常,重启一次,确认系统回到初始状态。
  3. 干净状态下重新执行 L2 禁用命令。
  4. 再次重启验证效果稳定。
# 先恢复系统默认防护 no-defender-loader --disable # 重启后重新禁用 no-defender-loader --av --firewall # 验证服务状态 sc.exe query WinDefend sc.exe query wscsvc
:: CMD:先恢复系统默认防护 no-defender-loader --disable :: CMD:重启后重新禁用 no-defender-loader --av --firewall :: CMD:验证服务状态 sc query WinDefend sc query wscsvc

✅ 通过标准:重启两轮后WinDefend均为STOPPED,且安全中心不再弹出"检测到威胁防护已关闭"类反复提示。

⚠️风险:卸载第三方安全软件可能删除关联配置。回退方法:执行--disable恢复 Defender 后,再重装该安全软件。

逐层验证,别跳过任何一层直接上狠招。

操作路线图

把上面的四个层级连起来,完整决策路径如下:

开始(管理员终端) │ ├─ L1 版本 + 权限检查 │ ├─ 通过 → 进入 L2 │ └─ 失败 → 重新获取工具 / 换管理员账户,回到 L1 │ ├─ L2 执行禁用 --av [--firewall] │ ├─ 通过(WinDefend STOPPED + 防火墙 OFF)→ 进入 L3 │ └─ 失败 → 进入 L4 排查冲突 │ ├─ L3 重启验证 │ ├─ 通过(重启后仍禁用)→ 结束 ✅ │ └─ 失败(Defender 复活)→ 检查自启动项 → 回到 L2 │ └─ L4 第三方冲突处理 ├─ 通过(连续两轮重启稳定)→ 结束 ✅ └─ 失败 → 执行 --disable 还原,卸载冲突软件后重来

不同环境的适配差异:

  • Windows 11:Defender 服务恢复机制更积极,L2 执行后应立即验证,不要隔几分钟再看。
  • 系统还原/安全模式启动后:自启动可能未生效,需要重新执行一次 L2。
  • 工具目录被移动/清理:自启动指向旧路径导致静默失败,把工具放回原处或重新执行 L2。

沿着图走,每个分支都有出口,不会卡死。

验收清单 📋

下面 4 条命令可以直接复制执行,全部满足才算禁用成功:

# 1. 验收 Defender 服务状态(预期 STOPPED) sc.exe query WinDefend # 2. 验收防火墙状态(预期 OFF) netsh advfirewall show allprofiles state # 3. 验收 WSC 服务仍在运行(WSC 本身不该被停掉) sc.exe query wscsvc # 4. 验收工具可恢复(预期输出版本号,证明回滚通道可用) no-defender-loader --version
检查项命令预期输出不通过时跳转
Defender 已停止sc.exe query WinDefendSTATE : 4 STOPPEDL2 执行与验证
防火墙已关闭netsh advfirewall show allprofiles stateFirewall Protection: OFFL2 执行与验证
WSC 服务正常sc.exe query wscsvcSTATE : 4 RUNNINGL4 冲突处理
重启后仍生效重启后重跑第 1 条STATE : 4 STOPPEDL3 重启保持
验收开始 │ ├─ WinDefend = STOPPED ? │ ├─ 是 → 防火墙 = OFF ? │ │ ├─ 是 → WSC = RUNNING ? │ │ │ ├─ 是 → 重启后复查第 1 条 │ │ │ │ ├─ 是 → 验收通过 ✅ │ │ │ │ └─ 否 → 回到 L4 │ │ │ └─ 否 → 回到 L4 │ │ └─ 否 → 回到 L2 │ └─ 否 → 回到 L2

四条命令全绿,才算真正验收通过。

长效维护

把下面的脚本保存为watch-defender.ps1,它会周期性记录 Defender 与防火墙状态,方便你观察禁用效果是否稳定、还原后是否真正回来了。

# watch-defender.ps1 —— Defender/防火墙状态巡检脚本 # 用法:powershell -ExecutionPolicy Bypass -File watch-defender.ps1 $logPath = Join-Path $env:USERPROFILE "no-defender-watch.log" function Write-Status { param([string]$Name, [string]$State) $line = "{0} {1} {2}" -f (Get-Date -Format "yyyy-MM-dd HH:mm:ss"), $Name, $State Add-Content -Path $logPath -Value $line Write-Host $line } # 检查 Defender 服务状态 try { $def = (Get-CimInstance Win32_Service -Filter "Name='WinDefend'").State Write-Status "WinDefend" $def } catch { Write-Status "WinDefend" "QUERY_ERROR" } # 检查 WSC 服务状态 try { $wsc = (Get-CimInstance Win32_Service -Filter "Name='wscsvc'").State Write-Status "wscsvc" $wsc } catch { Write-Status "wscsvc" "QUERY_ERROR" } # 检查防火墙状态并记录 OFF/ON $fwState = (netsh advfirewall show allprofiles state | Select-String "Firewall Protection").ToString().Trim() Write-Status "Firewall" $fwState

周期性检查计划:

频率检查项命令
每次大更新/补丁安装后Defender 是否复活sc.exe query WinDefend
每周巡检日志有无状态突变查看%USERPROFILE%\no-defender-watch.log
决定恢复防护前导出当前服务配置留底sc.exe qc WinDefend > "$env:USERPROFILE\WinDefend-before-restore.txt"
决定恢复防护前导出防火墙配置留底netsh advfirewall export "%USERPROFILE%\fw-backup.xml" all

记住一个原则:改任何东西之前,先把现状导出成一份文件。

真实案例复盘 🧪

案例一:命令执行后无任何输出

现象:终端执行no-defender-loader --av后无反应,Defender 状态不变。

排查路径:

  1. 执行--version,输出版本明显旧于近期 Windows 更新节奏。
  2. 查看事件日志,发现 Defender 每次被停用后数秒内又被拉起。
  3. 怀疑旧版工具的 WSC 注册名与新版 Windows 的识别逻辑不匹配。
  4. 更换到最新版本重新执行。
# 升级后重新执行 no-defender-loader --version no-defender-loader --av sc.exe query WinDefend

一句话结论:工具版本落后于系统更新时,先升级工具再谈其他。


案例二:禁用成功但重启全部失效

现象:当天禁用完全正常,第二天开机 Defender 满血复活。

排查路径:

  1. 重启后查询服务,确认WinDefend已恢复RUNNING。
  2. 检查工具目录,发现一个第三方安全工具在扫描日志中记录过"清理可疑自启动项"。
  3. 确认 no-defender 的自启动条目已被该工具移除。
  4. 关闭该安全工具后重新执行禁用命令。
:: 关闭冲突安全工具后重新禁用 no-defender-loader --av :: 重启后复查 sc query WinDefend

一句话结论:第三方安全软件清理自启动项,是重启失效的头号原因。


案例三:想用--disable收场却把系统搞反了

现象:用户想恢复 Defender,执行--disable后 Defender 反而被再次禁用。

排查路径:

  1. 复现操作,确认--disable执行后WinDefend变为STOPPED。
  2. 查阅 README.md 参数说明,发现--disable的描述是 "re-enable firewall/defender" 的反向用法被误读为"禁用"。
  3. 对照参数列表,确认--av才是禁用入口。
  4. 按正确参数顺序先--disable恢复,再按需执行禁用。
# 正确操作顺序 no-defender-loader --disable # 恢复 Defender 与防火墙 no-defender-loader --av # 需要时再禁用

一句话结论:--disable是恢复开关,参数名和实际方向不一致,用前先读帮助。

复盘的价值在于把下一次踩坑的时间压到最短。

速查附录

常见错误与问题速查表:

代码/现象含义修复方向关联章节
0x80070422服务未启动确认是"被禁用"还是"被停止",别误操作启动症状对照
0x80070005权限不足管理员终端重跑L1 基础环境检查
防火墙启动失败被 WSC 声明禁用中属预期行为,--disable恢复L2 执行与验证
执行无反应版本过旧或冲突换最新版 + 关闭第三方杀毒L4 冲突处理
重启后复活自启动项丢失检查工具文件与自启动L3 重启保持

常用命令收藏:

# ---- 工具基础 ---- no-defender-loader --version # 查版本 no-defender-loader --help # 查帮助 # ---- 禁用与恢复 ---- no-defender-loader --av # 禁用 Defender no-defender-loader --av --firewall # 禁用 Defender + 防火墙 no-defender-loader --disable # 恢复 Defender 与防火墙(注意方向) # ---- 状态验证 ---- sc.exe query WinDefend # Defender 服务状态 sc.exe query wscsvc # WSC 服务状态 netsh advfirewall show allprofiles state # 防火墙状态

收藏这张表,出问题时照着敲就不会慌。

【免费下载链接】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),仅供参考

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

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

立即咨询