BAT腳本中主動獲取管理員權限

直接上代碼,也是直接Copy過來的,在BAT開頭加上這一段

@echo off  
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" 
 
if '%errorlevel%' NEQ '0' (  
    goto UACPrompt  
) else ( goto gotAdmin )  
   
: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" )  
    pushd "%CD%" 
    CD /D "%~dp0" 
 
:begin
執行你的語句

實現原理:

  1. 訪問一個需要授權的文件夾(%SYSTEMROOT%\system32\config\system)通過查看錯誤碼,判斷是否被拒絕。如果被拒絕了,就要申請權限
  2. 申請權限方法:創建一個運行器,運行相對目錄(相對目錄就是運行批處理的目錄)裏面的程序,以管理員權限。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章