09s*_*enb 9 windows registry file batch-file elevated-privileges
我有以下代码
@echo off
file.reg
pause
Run Code Online (Sandbox Code Playgroud)
这可以工作但是当批处理文件被提升时,我收到一条错误,说它无法找到该文件.有没有人知道我做错了什么.
npo*_*aka 14
@echo off
rem set __COMPAT_LAYER=RunAsInvoker
REGEDIT.EXE /S "%~dp0\file.reg"
pause
Run Code Online (Sandbox Code Playgroud)
试试这个
如果您在注册表中访问不需要管理员权限的位置,则可以使用__COMPAT_LAYER环境变量.在使用regedit之前执行此操作:
set __COMPAT_LAYER=RunAsInvoker
Run Code Online (Sandbox Code Playgroud)
如果您的脚本未以管理员身份运行,则会阻止UAC弹出.
也许,使用提升权限启动批处理会将起始目录更改为%windir%\system32(所在的路径cmd.exe).
使用:
"%~dp0\file.reg"
Run Code Online (Sandbox Code Playgroud)
始终执行file.reg与批处理文件位于同一目录中.
还要考虑使用REG命令,因为它允许您在注册表上执行控制台操作(检查REG /?).