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

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

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

原文地址:https://www.cnblogs.com/ibingshan/p/11323035.html