【CMD】bat以管理员身份运行命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Dh_Chao/article/details/78673262

事件起因

  最近将语音系统配置到其他笔记本的时候出现了点问题。
  单独调科大语音接口的项目jar包在运行处理语音文件的时候报 26105 异常,查看科大sdk源码查看相关文档后,发现是本机用户对科大所设缓存的磁盘没有写入的权限。
  由于所配的笔记本只含C盘(很坑爹),种种原因,反正就是当前电脑用户无法修改C盘权限。查看笔记本的本地用户和组发现Administrator已经被禁用。右键直接运行含java命令的批处理文件也只是闪退。最后发现只能通过右键菜单中的命令行以管理员身份运行的方式,切换到当前批处理文件的路径运行该批处理文件才得以解决。

实现代码

  以上纯是个人遇到的问题。主要是为了方便销售使用,总不能让他每次切换目录命令。所以寻思直接bat以管理员身份运行的方式执行。命令如下:

@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
java -jar DThread.jar // 此处替换为自己所需执行的命令即可

猜你喜欢

转载自blog.csdn.net/Dh_Chao/article/details/78673262