如何彻底禁用 Windows Defender(附安全模式终极方案)
引言:为何 Windows Defender 如此"顽固"?
今晚我为了关闭 Win10 系统的 Defender,耗费数小时,最终发现正常启动状态下几乎无法彻底禁用------这并非个例。许多开发者、安全研究人员和普通用户都面临同样困境:
- 正常软件被误报:开发工具、破解补丁、小众软件常被误判为病毒
- 安全实验受阻:恶意代码分析、系统渗透测试等安全研究被 Defender 拦截
- 系统资源占用:后台扫描影响老旧设备性能
- 控制权争夺:用户对自己设备的控制权被微软安全策略部分剥夺
问题核心:为什么正常模式下难以彻底禁用?
Windows Defender 采用多层防护机制:
- 实时保护:常驻内存,自我守护
- 篡改保护(Windows 11 21H2前):防止恶意修改
- 智能更新:通过"智能更新"恢复被禁用的组件
- 服务依赖:多个服务相互监控,重启失效服务
解决方案:安全模式 + Defender Remover 组合拳
工具简介
Defender Remover 是一款开源工具,能够彻底移除/禁用以下组件:
- Windows Defender 防病毒核心
- Windows 安全中心(Security Health)
- 基于虚拟化的安全(VBS)
- Windows SmartScreen
- 内核隔离、驱动程序阻止列表
- 系统缓解措施(Spectre/Meltdown补丁等)
关键发现:为什么必须进入安全模式?
从我的实践和脚本分析发现:
powershell
# 正常模式下,Defender 服务受保护
# 安全模式下,大部分安全服务不启动
# 这才是修改系统核心组件的最佳时机
完整操作指南
第一步:进入安全模式
Windows 10 方法:
- 按住 Shift 键点击"重启"
- 疑难解答 → 高级选项 → 启动设置 → 重启
- 按 F4 或 4 键进入安全模式
- 或按 F5 进入带网络的安全模式(如需下载工具)
第二步:准备工作
1. 创建系统还原点(强烈建议)
powershell
# 以管理员运行 PowerShell
Checkpoint-Computer -Description "Before Defender Removal"
2. 下载工具
bash
# 方法A:下载可执行文件(可能被误报)
# 从 Releases 页面下载最新 .exe
# 方法B:使用 Git(推荐)
git clone https://github.com/ionuttbara/windows-defender-remover.git
# 方法C:下载源代码
# 下载 Source Code(.zip) 并解压
第三步:执行移除
方案A:使用图形界面
1. 右键点击 Script_Run.bat → 以管理员身份运行
2. 选择移除选项:
[Y] 移除 Defender + 禁用所有安全缓解措施
[A] 仅移除 Defender(保留 UAC)
[S] 禁用所有安全缓解措施
方案B:使用 PowerShell 直接运行
powershell
# 进入解压目录
cd windows-defender-remover
# 直接调用脚本
.\defender_remover13.ps1 y
# 参数说明:
# y/Y - 完全移除
# a/A - 仅移除防病毒
# s/S - 禁用安全缓解
第四步:处理特殊情况
如果遇到"Device Guard"错误:
powershell
# 手动删除策略文件(需管理员权限)
Remove-Item -LiteralPath "$((Get-Partition | ? IsSystem).AccessPaths[0])Microsoft\Boot\WiSiPolicy.p7b"
Remove-Item -LiteralPath "$env:windir\System32\CodeIntegrity\WiSiPolicy.p7b"
Remove-Item -LiteralPath "$env:windir\Boot\EFI\wisipolicy.p7b"
Get-ChildItem "$env:windir\WinSxS" -Include *winsipolicy.p7b* -Recurse | Remove-Item
如果 VBS 重新启用:
powershell
# 检查是否使用了虚拟化功能
# 以下应用会重新启用 VBS:
# - WSL(Linux子系统)
# - Hyper-V
# - Android子系统
# - Visual Studio Android 模拟器
# 完全禁用虚拟化
bcdedit /set hypervisorlaunchtype off
技术原理深度解析
1. 注册表修改策略
工具通过修改 200+ 个注册表项实现禁用:
powershell
# 示例:禁用实时监控
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" `
-Name "DisableRealtimeMonitoring" -Value 1
# 禁用篡改保护
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Defender\Features" `
-Name "TamperProtection" -Value 0
2. 服务移除机制
powershell
# 删除关键服务注册表项
$services = @('WinDefend', 'WdNisSvc', 'SecurityHealthService', 'wscsvc')
foreach ($service in $services) {
Remove-Item "HKLM:\SYSTEM\CurrentControlSet\Services\$service" -Recurse -Force
}
3. 文件系统清理
powershell
# 删除 Defender 相关文件
Remove-Item "C:\Program Files\Windows Defender" -Recurse -Force
Remove-Item "C:\ProgramData\Microsoft\Windows Defender" -Recurse -Force
风险与注意事项
⚠️ 安全警告
- 系统暴露:禁用后系统易受真实病毒攻击
- 更新恢复:Windows 更新可能重新启用 Defender
- 兼容性问题:某些软件依赖 Defender 接口
- 系统不稳定:不当修改可能导致蓝屏
🔧 恢复方案
重新启用 Defender:
powershell
# 方法1:使用系统还原点
# 方法2:重新安装 Defender
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
部分恢复:
powershell
# 重新启用关键服务
Get-Service WinDefend, wscsvc | Set-Service -StartupType Automatic -Status Running
替代方案比较
| 方法 | 彻底性 | 重启生效 | 更新后保持 | 风险等级 |
|---|---|---|---|---|
| 组策略禁用 | 低 | 是 | 否 | 低 |
| 注册表修改 | 中 | 是 | 有时 | 中 |
| 本工具(正常模式) | 高 | 是 | 通常 | 高 |
| 本工具(安全模式) | 最高 | 是 | 是 | 最高 |
| 替换系统文件 | 最高 | 是 | 是 | 极高 |
进阶技巧:创建"干净"的 Windows 安装镜像
如需频繁重装系统,可创建预禁用 Defender 的 ISO:
1. 提取原版 ISO
2. 在 sources 创建 $OEM$\$$\Panther\
3. 添加无人值守应答文件(自动运行移除脚本)
4. 重新打包为可启动 ISO
常见问题解答
❓ 工具被报毒?
这是典型的启发式误报。工具通过修改系统核心组件实现功能,行为类似病毒。建议:
- 从 GitHub 源码编译
- 在隔离环境中使用
- 使用源代码版本而非预编译 exe
❓ 更新后失效?
Windows 的"智能更新"会修复安全组件。解决方案:
- 暂停更新
- 使用工具中的更新阻止功能
- 定期重新运行移除脚本
❓ 影响虚拟机和 WSL?
是的。禁用 VBS 会影响:
- Hyper-V 虚拟机无法启动
- WSL 2 需要 VBS
- Android 子系统无法运行
解决方案:使用选项 A(仅移除防病毒)保留虚拟化支持。
结论
通过安全模式运行 Defender Remover 是当前最彻底 的禁用方案,但也是风险最高的。必须:
- 做好备份:系统还原点必须创建
- 理解后果:系统将完全暴露于真实威胁
- 按需使用:仅在测试环境或明确需求时使用
- 准备恢复:掌握重新启用的方法
对于大多数用户,建议使用 Windows 安全设置中的"排除项"功能或组策略进行部分禁用,而非完全移除。此方案仅推荐给安全研究人员、开发者和高级用户在受控环境中使用。
免责声明:本文仅用于技术研究目的。修改系统安全组件可能导致系统不稳定、数据丢失或安全风险。操作前请备份重要数据,并在法律允许范围内使用。作者不对因使用本文所述方法造成的任何损失负责。