以管理员身份运行(获取管理员权限)
技术问题
以管理员身份运行(获取管理员权限)
2025-05-23 09:39
以管理员身份运行(获取管理员权限)
批处理自身自动获取管理员权限的代码网上很多,最终我采用以下这一行,放在批处理开头就可以了:
net session >nul 2>&1||(mshta "vbscript:createobject("shell.application").shellexecute("%~0","%~1","","runas",1)&close()" & exit) |
一行代码就搞定了
还有其他的几种方式供参考:
@echo off&(pushd "%~dp0")&(cacls "%SystemDrive%\System Volume Information" >nul 2>&1)||(start "" mshta vbscript:CreateObject^("Shell.Application"^).ShellExecute^("%~snx0"," %*","","runas",1^)^(window.close^)&exit /b) |
或
@echo off&(pushd "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"&&exit) |
或
@ECHO OFF & CD /D %~DP0 & color f0 >NUL 2>&1 reg.exe query "HKU\S-1-5-19" || ( ECHO SET UAC = CreateObject^("Shell.Application"^) > "%TEMP%\Getadmin.vbs" ECHO UAC.ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\Getadmin.vbs" "%TEMP%\Getadmin.vbs" DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL Exit /b ) |
或
%1 start "" mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit |
label :
- 以管理员身份运行(获取管理员权限)