bat 判断 bat 是否是以管理员权限运行,和自动以管理员权限运行

bat 判断 bat 是否是以管理员权限运行,和自动以管理员权限运行

判断

@echo off
net.exe session 1>NUL 2>NUL && (
    goto as_admin
) || (
    goto not_admin
)

:as_admin
echo as_admin
goto end

:not_admin
echo not as admin

:end
pause

自动以管理员权限运行

@echo off  
net.exe session 1>NUL 2>NUL && (
    goto gotAdmin
) || (
    goto UACPrompt
)
   
: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" )  
 
:begin

pause

或者

%1 start "" mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

echo your code

pause

 

 

参考链接:https://www.cnblogs.com/dengpeng1004/p/7044441.html

注意:参考链接中的方式,如果一个bat编译成exe后,去运行另外一个 以管理员权限运行的 bat,%errorlevel% 一直都不能为0

 

posted @ 2019-08-08 18:42  ibingshan  阅读(3852)  评论(0编辑  收藏  举报