禁止d盘运行bat/vbs脚本的核心逻辑是切断执行入口:一、组策略“阻止运行脚本”中添加d:\路径并指定扩展名;二、ntfs权限取消everyone的“执行文件”和“读取数据”权;三、注册表禁用wsh的d盘响应并重定向.bat/.vbs为txtfile。

禁止特定磁盘分区运行BAT/VBS脚本的核心逻辑
要让D盘(或其他指定分区)彻底无法执行任何.bat、.cmd、.vbs文件,不能只靠删掉双击行为或禁用脚本解释器——Windows会绕过资源管理器,直接调用wscript.exe或cmd.exe加载脚本。必须从文件系统层切断“执行入口”,同时封堵解释器对目标路径的访问权限。
方法一:用组策略禁用驱动器内所有脚本解释器调用(推荐家庭/办公单机)
第一步:按 Win + R 输入 gpedit.msc → 回车,以管理员身份打开本地组策略编辑器。
第二步:依次展开左侧路径:计算机配置 → 管理模板 → 系统 → 脚本。
第三步:在右侧找到并双击“阻止运行脚本”策略项。
第四步:勾选“已启用”,在下方“脚本扩展名”框中输入:.bat;.cmd;.vbs;.js;.wsf(注意用英文分号隔开,不加空格)→ 点击“确定”。
第五步:关键一步:在该策略设置窗口的“选项”页签中,点击“添加路径”按钮,在弹出对话框中填入:D:\ → 点击“确定”保存。这一步必须手动添加路径,否则策略默认作用于全盘,会误杀系统盘脚本。
方法二:通过NTFS权限彻底锁死脚本文件执行权(适用于专业版/企业版)
右键点击D盘根目录 → “属性” → “安全”选项卡 → “高级” → 关闭“继承权限” → 弹出提示时选“从父级继承的权限将被移除…” → 点击“添加”。
点击“选择主体” → 输入 Everyone → 检查名称 → 确定。
在下方权限列表中,取消勾选“遍历文件夹/执行文件”和“列出文件夹/读取数据”两项(其余保持默认)→ 勾选“仅应用于此容器内的对象” → 点击“确定”。
【此操作不可逆,执行后D盘所有文件将无法被双击、拖入cmd或wscript执行,但不影响记事本打开.txt、图片查看器打开.jpg等读取行为】
方法三:注册表拦截+脚本扩展名重定向(兼容家庭版,需谨慎)
方法1:禁用脚本解释器对D盘的响应
按 Win + R 输入 regedit → 定位到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings
右键新建一个DWORD(32位)值,命名为 Enabled,数值数据设为 0。
再新建一个字符串值,命名为 RestrictedPath,数值数据填入:D:\。
重启电脑生效。此设置会让wscript.exe/cscript.exe拒绝加载D盘下的任何.vbs/.js文件,但.bat仍可被cmd调用——需配合下一步。
方法2:让系统把.bat/.vbs识别为纯文本而非可执行类型
定位到:HKEY_CLASSES_ROOT\.bat 和 HKEY_CLASSES_ROOT\.vbs
分别双击右侧的“(默认)”项,把原值(如batfile、VBSFile)全部改为 txtfile。
【改完立即生效,双击D盘下任意.bat会用记事本打开,不会执行;但C盘系统脚本不受影响,因注册表修改仅改变文件类型关联,不改变文件本身】











