必须使用软件限制策略的路径规则才能按文件系统路径精确禁止exe执行:在gpedit.msc中进入计算机配置→安全设置→软件限制策略→新建路径规则,输入如d: ools*.exe并设为“不允许”,再通过注销、gpupdate /force或重启explorer.exe生效。

要在Windows 10专业版或企业版中彻底阻止用户从某个特定文件夹(如U盘根目录、D:Tools、\ServerSharedApps)运行任何.exe文件,必须绕过“仅拦截程序名”的粗粒度限制,转而基于路径实施执行级拦截——这需要使用软件限制策略(Software Restriction Policies)中的路径规则,而非用户配置下的“不要运行指定的Windows应用程序”策略。
启用并配置软件限制策略路径规则
软件限制策略工作在计算机配置层级,对所有用户生效,且支持通配符和子目录继承,是唯一能按文件系统路径精确禁止EXE执行的原生机制。
第一步:以管理员身份按下 Win + R,输入 gpedit.msc 并回车,打开本地组策略编辑器。
第二步:依次展开左侧树形结构:计算机配置 → Windows 设置 → 安全设置 → 软件限制策略。
第三步:若右侧显示“未定义软件限制策略”,右键空白处 → 选择“创建软件限制策略”。此时会自动生成“安全级别”和“其他规则”两个子节点,无需手动新建策略容器。
第四步:点击左侧“其他规则”,右键 → “新建路径规则…”。
第五步:在“路径”栏中输入目标文件夹的完整路径,末尾加反斜杠和星号通配符,例如:D:Downloads*.exe 或 \NASPublic**.exe。注意:路径必须为UNC格式或本地绝对路径,不能含环境变量如%USERPROFILE%;【路径末尾的 *.exe 不可省略,否则规则不匹配任何可执行文件】。
第六步:将“安全级别”下拉菜单设为“不允许”,点击“确定”。该规则即刻写入策略数据库,无需重启。
验证与强制立即生效
新规则默认在用户下次启动进程时生效,但部分已加载的explorer.exe子进程可能缓存旧策略。需主动刷新执行环境才能验证效果。
方法一:注销当前用户并重新登录。这是最稳妥的方式,确保所有shell上下文重载策略。
方法二:以管理员身份运行命令提示符,执行:gpupdate /force → 回车。该命令强制更新组策略,但仅刷新策略缓存,不终止现有进程。
方法三:任务管理器中找到“Windows 资源管理器”,右键 → “重新启动”。此操作会杀死explorer.exe及其派生的所有快捷方式启动行为,使路径规则对桌面双击、资源管理器内运行等场景立即生效。
验证动作:进入已禁止的文件夹,双击任意.exe文件(如test.exe),系统将弹出提示:“此程序由于组策略限制而被阻止”。若仍能运行,检查路径是否拼写错误、是否遗漏了 *.exe 后缀、或目标文件夹是否实际位于NTFS分区(FAT32/U盘需先转换为NTFS才支持策略应用)。
补充:绕过风险与加固要点
软件限制策略路径规则可被高级用户绕过,例如将.exe重命名为.com或.scr,或通过PowerShell调用字节数组内存执行。如需更强防护,必须配合NTFS权限控制。
进入目标文件夹属性 → “安全”选项卡 → “编辑” → 选中目标用户或Users组 → 在下方权限列表中,取消勾选“读取和执行”、“读取”、“列出文件夹内容”三项 → 点击“确定”。【此项操作将直接拒绝访问,比组策略更底层,但会导致用户无法浏览该文件夹内任何文件】。
若仅需阻止执行而不影响查看,保留“读取”权限,仅取消“读取和执行”。此时用户能看到文件名,但双击或命令行调用均失败,错误代码为0x80070005(拒绝访问)。











