1. 程式人生 > 程式設計 >讓bat批處理以管理員許可權執行的實現方法

讓bat批處理以管理員許可權執行的實現方法

1、第一種方法

有的電腦是非管理員登入,執行程式時,需要提示是否執行執行。解決方法如下:

@ echo off
%1 %2
ver|find "5.">nul&&goto :Admin
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(window.close)&goto :eof
:Admin
//在你的bat開頭加上上面的命令即可
//下面是你需要執行的命令
set path=%~dp0
echo install mysql service...
echo %path%
cd %path%\bin\
mysqld.exe --remove mysql
mysqld.exe --install mysql
echo start mysql Serviceo
"%SystemRoot%"\system32\net start mysql

2、bat指令碼獲取管理員許可權

@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::",1)(window.close)&&exit
cd /d "%~dp0"

寫在bat檔案的頂端就可以實現。

3、bat指令碼中以管理員許可權執行命令

在bat指令碼檔案第一行加上下面命令:

%1 mshta vbscript:CreateObject(“Shell.Application”).ShellExecute(“cmd.exe”,“runas”,1)(window.close)&&exit

4、自動以管理員身份執行批處理(bat)檔案

在日常運維工作中,為方便對windows使用者進行系統安裝或配置等,使用Windows自帶的批處理(bat檔案)是一種最為簡單快速的方法。

但是,批處理指令碼不會預設已管理員身份執行,一般情況下,我會將指令碼命名為"XXXXXX(請右鍵點選,用管理員身份執行!).bat",但總有些使用者會忽略這條提示,直接執行,此時由於許可權不足,導致指令碼執行失敗。我們可以使用一種變通的方法,讓bat啟動時,首先呼叫vbs指令碼,通過vbs指令碼,以管理員身份呼叫該bat的 runas 部分

我們的指令碼可以寫在runas 下,這樣就點選該bat指令碼,就可以已管理員身份運行了

示例程式碼如下

@ECHO OFF
setlocal EnableDelayedExpansion
color 3e
title 新增服務配置
 
PUSHD %~DP0 & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas",1)(window.close)&goto :eof
:runas
 
::填寫自己的指令碼
 
echo 執行完畢,任意鍵退出
 
pause >nul
exit

5、以管理員許可權執行bat指令碼

只需要在你編寫的.bat檔案的開頭加上以下指令碼,然後雙擊.bat檔案即是以管理員許可權執行

@echo off&color 17
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
echo 當前執行路徑是:%CD%
echo 已獲取管理員許可權

6、如何讓BAT和CMD批處理以管理員身份執行

如何讓BAT和CMD批處理以管理員身份執行?

有些批處理需要很高的許可權執行才能達到我們所需要的效果,

將以下程式碼放入批處理最頂部就可以實現以管理員身份運行了。

@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",1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

7、命令列CMD批處理自動以管理員身份執行的正確方法

修正了路徑有空格時的問題

在批處理開頭加上:

適用於無引數

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%",1)(window.close)&&exit

適用於一引數

%2 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" "^&chr(34)^&"%~1"^&chr(34)^&" ::",1)(window.close)&&exit

更多引數的以此類推
執行批處理時多加一個引數::,這句就不會執行
為了相容8.3短路徑,可把%~0等換成%~s0
理論上是沒問題,但啟動路徑有時不可靠,之後可能還要pushdcd /d

8、bat檔案以管理員許可權執行的幾種方式

1、建立bat快捷方式,然後右鍵快捷方式-->properties-->advanced-->Run as administrator。
2、下載bat轉成exe工具,將bat轉成exe,然後右鍵exe-->properties-->Compatibility-->Run as administrator。
3、以管理員許可權執行cmd,然後dos框中執行相應的bat。

到此這篇關於讓bat批處理以管理員許可權執行的實現方法的文章就介紹到這了,更多相關管理員許可權執行bat內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!