在開啓UAC權限管理時,運行腳本默認是沒有管理員權限的。因此導致在腳本中執行某些程序時會權限不足。
runas 指令可以已admin賬號執行,但需要密碼,基本上是不被允許的。
已管理員權限運行有兩種方式:
方式一:右鍵菜單,選擇以管理員身份運行
此方式最爲簡單,大部分時候都能滿足要求。就是有一點要注意,此方式啓動的腳本,默認是在system目錄下的,並不在腳本所在目錄。
在腳本第一行添加一行路徑跳轉語句即可
cd /d "%~pd0"
方式二:調用VB對象提升腳本權限
if "%~1"=="goto" (^
if "%~2"==":uacsuccess" (goto :uacsuccess))
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :uacsuccess ","","runas",1)(window.close) &goto :end
:uacsuccess
echo :uacsuccess
goto :end
:end
mshta 是windows超文本解析器,通過此創建VB腳本。使用Shell對象的shellexecute方法提權。
shellexecute的參看https://docs.microsoft.com/en-us/windows/win32/shell/shell-shellexecute