You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建Admin权限Bat批量设置指定目录及子目录exe的管理员兼容模式

批量修改所有驱动器中"test files"目录下EXE的管理员兼容性设置

当然可以实现!你的思路方向是对的——通过注册表添加兼容性标记,但现有脚本有几个小瑕疵,调整后就能自动遍历所有驱动器里的test files目录,批量处理所有EXE文件。

先说说你现有脚本的问题:

  • 硬编码了J:test files\路径,没法自动处理其他驱动器
  • 路径写法有误,应该是J:\test files\(缺少根目录的反斜杠)
  • 必须确保脚本以管理员权限运行,否则reg add会因权限不足失败

改进后的完整脚本

@echo off
setlocal enabledelayedexpansion

:: 遍历所有本地驱动器(跳过WMIC输出的表头行)
for /f "skip=1 tokens=1" %%D in ('wmic logicaldisk get caption') do (
    :: 检查当前驱动器是否存在目标目录
    if exist "%%D\test files\" (
        echo 正在处理 %%D 驱动器下的 "test files" 目录...
        :: 递归遍历目录下所有.exe文件
        for /r "%%D\test files\" %%A in (*.exe) do (
            :: 写入注册表兼容性设置,/f强制覆盖已有项
            reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%%~fA" /d "RUNASADMIN" /f >nul
            :: 实时反馈处理结果
            if !errorlevel! equ 0 (
                echo ✅ 已设置管理员权限: %%~fA
            ) else (
                echo ❌ 设置失败: %%~fA
            )
        )
    )
)

echo.
echo 所有目录处理完成!
pause

关键细节说明

  • 遍历所有驱动器:用wmic logicaldisk get caption获取本地所有盘符,自动排查每个驱动器里的test files目录
  • 完整路径处理:%%~fA确保获取EXE文件的绝对路径,避免注册表路径出错
  • 权限与静默处理:/f参数强制覆盖已有设置,>nul屏蔽reg命令的默认输出,让结果更清晰
  • 实时反馈:通过errorlevel判断是否设置成功,方便你快速排查问题

使用注意事项

  1. 必须以管理员身份运行:右键点击bat文件,选择「以管理员身份运行」,否则没有权限修改注册表
  2. 用户范围:当前脚本修改的是当前用户的设置(HKCU路径),如果要对所有用户生效,需要把注册表路径改为HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers,但这需要更高的系统权限
  3. 特殊程序:部分程序可能自带兼容性保护,或者不支持管理员运行,这类文件会显示「设置失败」,需要手动检查

内容的提问来源于stack exchange,提问作者skylinekiller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 11:32:58