批处理自动获取管理权限
有时编写bat批处理时会用到判断当前是否为管理员权限以及自动以管理员权限运行
在这里记录几个常用的方法
1.判断是否以管理员身份运行
这个操作方式比较多,核心思想就是试图访问需要管理员身份才可以访问的资源,可以访问则有权限,不可以访问则没有权限
以下三种方式都可以进行判断,可以灵活使用
"%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REG QUERY "HKU\S-1-5-19"
net.exe session
2.使用管理员权限运行
提供两种方式
2.1.VBS方式
mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)
2.2.powershell方式
%~sdpnx0
: 指向当前批处理文件
powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"
3.组合使用
提供两种组合方式,代码放于批处理前面使用即可,其他自由组合
:: 方式一
REG QUERY "HKU\S-1-5-19">NUL 2>&1||(powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"&&exit)
:: 方式二
REG QUERY "HKU\S-1-5-19">NUL 2>&1||mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit