要禁止用户在特定目录下运行可执行文件,必须禁用继承并显式拒绝“读取和执行”“列出文件夹内容”“读取”权限,而非仅删.exe权限或禁止打开文件夹;因NTFS无独立“执行”开关,仅拒绝“读取和执行”仍可被命令行绕过,需三项一并拒绝才能阻断所有执行路径。
要禁止用户在特定目录下运行可执行文件,不能只靠“禁止打开文件夹”或简单删掉.exe权限——windows 默认允许用户执行文件的前提是拥有“读取和执行”权限。真正有效的做法是:在该目录上拒绝“读取和执行”权限,同时保留其他必要权限(如写入),并确保策略不被父级继承覆盖。
关键步骤:禁用继承 + 显式拒绝执行权限
这是最可靠、最直接生效的方式:
- 右键目标文件夹 → “属性” → “安全” → “高级”
- 点击“禁用继承”,选择“从此对象中删除所有已继承的权限”(清除上级干扰)
- 点击“添加” → “选择主体”,输入目标用户或组(如 Users 或具体用户名)
- 在下方权限列表中,展开“显示高级权限”,勾选“拒绝”列下的“读取和执行”、“列出文件夹内容”、“读取”三项
- 注意:不要勾选“拒绝写入”,否则用户连保存临时文件、日志等基础操作都会失败
- 点击“确定”保存,重启资源管理器或注销重登录使策略立即生效
为什么不能只删“执行”权限?
NTFS 权限中没有独立的“执行”开关。“执行”能力实际由“读取和执行”+“读取”共同支撑。若仅取消“读取和执行”但保留“读取”,用户仍可通过命令行(如 start app.exe)或双击触发默认关联行为来运行程序。只有明确拒绝“读取和执行”和“读取”,才能阻断所有执行路径。
补充加固:配合 AppLocker(企业环境推荐)
单靠 NTFS 拒绝存在绕过可能(例如用户将文件复制到桌面再运行)。如需更强管控:
- 打开组策略编辑器(
gpedit.msc),定位到“计算机配置 → Windows 设置 → 安全设置 → 应用程序控制策略 → AppLocker” - 启用“可执行规则”,新建一条规则:路径为
C:\YourRestrictedFolder\*.exe,操作设为“拒绝” - 确保规则应用顺序正确(拒绝规则应优先于允许规则),并启用策略
- AppLocker 会拦截所有尝试运行该路径下 .exe/.com/.bat 等可执行文件的行为,无论用户是否具有读取权限
验证是否生效
用受限账户测试以下行为:
- 能否进入该文件夹?→ 应能进入(只要没拒绝“列出内容”,但看不到文件名)
- 能否双击 .exe 文件?→ 应弹出“访问被拒绝”提示
- 能否在 CMD/PowerShell 中执行
C:\YourRestrictedFolder\app.exe?→ 应提示“拒绝访问”或“找不到文件” - 能否复制该文件到其他位置再运行?→ NTFS 本身不限制复制,如需禁止,请额外限制“读取”权限(但会影响日志查看等合理需求)


















