如何从Linux环境为Windows Defender添加排除项?
如何从Linux环境为Windows Defender添加排除项?
嘿,我完全懂你现在的需求——想用Linux USB上的脚本批量给多台Windows机器添加Defender排除项,之前试了chntpw没找到对应的注册表键对吧?别着急,我给你几个可行的方案,都是能在Linux环境下搞定的:
方案一:修正路径用chntpw重新操作
你之前用chntpw没找到键,大概率是导航的注册表路径不对。Windows Defender的排除项其实存在这个位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Exclusions
下面分三个子键:Paths(排除路径)、Processes(排除进程)、Extensions(排除文件扩展名),你要找的应该是这里。
具体操作步骤:
- 先挂载Windows系统分区(一般是带
Windows文件夹的那个NTFS分区):# 先用lsblk或fdisk -l确认分区,比如/dev/sdb2 mount -t ntfs-3g -o rw /dev/sdb2 /mnt/win - 启动chntpw的注册表编辑器:
regedit /mnt/win/Windows/System32/config/Software - 交互模式下导航到目标路径:
输入cd SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths回车 - 添加排除项,比如要排除
C:\MyApp\:
这里的add "C:\\MyApp\\" REG_DWORD 11代表启用排除,0是禁用。完成后输入quit保存退出。
如果要脚本化,直接用非交互方式:
regedit /mnt/win/Windows/System32/config/Software <<EOF cd SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths add "C:\\MyApp\\" REG_DWORD 1 add "D:\\Data\\" REG_DWORD 1 quit EOF
方案二:用libguestfs工具更便捷地脚本化
如果你觉得chntpw的交互方式不够顺手,可以试试libguestfs-tools这个工具集,它的virt-win-reg命令能直接离线修改Windows注册表,非常适合写脚本。
- 先安装工具(不同发行版命令略有不同):
# Debian/Ubuntu系 apt install libguestfs-tools # RHEL/CentOS系 yum install libguestfs-tools - 添加路径排除项的命令:
virt-win-reg /dev/sdb2 'HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths' \ --add-value "C:\\MyApp\\" --dword 1 - 如果要添加进程排除(比如
myprocess.exe):virt-win-reg /dev/sdb2 'HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions\Processes' \ --add-value "myprocess.exe" --dword 1
注意事项
- 挂载分区一定要加
rw参数,确保有写入权限; - Windows路径里的反斜杠要转义成
\\,否则脚本会识别错误; - 修改后重启Windows机器,Defender才会加载新的排除规则;
- 部分Windows版本可能需要禁用快速启动,否则注册表文件可能处于锁定状态无法修改。
如果操作中遇到权限问题或者找不到键的情况,告诉我具体的Windows版本和报错信息,我再帮你排查!
备注:内容来源于stack exchange,提问作者Linux Windows




