Windows Defender拦截自研BAT文件编辑,如何配置解决?
每次右键点击自研的.BAT文件选择“编辑”(已通过注册表将.bat的“编辑”操作关联到Notepad++),仅打开编辑而非运行时,都会弹出“Windows保护你的PC”提示,显示“阻止了未识别应用启动”。不想全局禁用Windows Defender,也不想为每个项目单独配置,该怎么解决?
看你提供的Notepad安装脚本,问题出在你创建了一个未签名的edit.bat脚本,并把它关联成了编辑操作的启动程序。Windows Defender会拦截未签名的批处理文件启动,哪怕你只是想用它来打开Notepad编辑其他文件,系统也会把这个edit.bat当成待启动的“未识别应用”,从而弹出警告。
具体是这段代码导致的:
with open(t.BinPath + r'\edit.bat', "w") as ed: ed.write(r'@start /b "" "' + 'notepad++' + r'" %1 %2 %3 %4 %5 %6 %7 %8 %9')
你生成的这个edit.bat没有数字签名,Windows会对这类用户自建批处理的启动行为进行拦截,这就是弹窗的核心原因。
直接把.bat文件的“编辑”操作关联到Notepad++主程序,跳过中间的edit.bat中转脚本即可。
步骤1:清理无用的edit.bat
直接删除你创建的这个批处理文件,它完全是多余的中转环节。
步骤2:修改.bat的编辑关联
命令行方式
打开管理员命令提示符,执行以下命令(替换{Notepad++实际路径}为你的Notepad++安装路径,比如C:\Program Files\Notepad++\notepad++.exe):
reg add "HKCR\batfile\shell\edit\command" /ve /d "\"{Notepad++实际路径}\" \"%1\"" /f
手动修改注册表方式
- 按下Win+R输入
regedit打开注册表编辑器 - 定位到路径
HKEY_CLASSES_ROOT\batfile\shell\edit\command - 将默认值修改为
"C:\Program Files\Notepad++\notepad++.exe" "%1"(替换成你的实际安装路径)
步骤3:验证
右键点击任意.bat文件选择“编辑”,应该直接启动Notepad++,且不会再弹出Windows Defender的拦截提示。
另外,你安装脚本里的其他关联设置(比如txt文件、无扩展名文件)都是正常的,只需要修正batfile的编辑关联即可。
内容的提问来源于stack exchange,提问作者nerdfever.com

