1. ホーム
  2. スクリプト・コラム
  3. DOS/BAT(ドス・バット

管理者権限でbatバッチを実行させる方法

2022-01-01 09:10:41

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
//just add the above command to the beginning of your bat
//The following is the command you need to execute
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 ::","",""," quot;runas",1)(window.close)&&exit
cd /d "%~dp0"

batファイルの先頭に記述することで実現します。

3. batスクリプトで管理者権限でコマンドを実行する

batスクリプトファイルの1行目に、以下のコマンドを追加します。

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c % ~s0 ::","", "runas",1)(window.close)&&exit

4. バッチ(bat)ファイルを管理者として自動的に実行する

日々の運用・保守作業や、Windowsユーザーのシステムインストールや設定を容易にするためなど、Windowsに付属するバッチ(bat)ファイルを使用することは、最も簡単で迅速な方法の一つです。

しかし、バッチスクリプトはデフォルトでは管理者として実行されないので、一般的にはスクリプトの名前を "XXXXXXX (右クリックして管理者として実行してください!) .bat" としますが、このプロンプトを無視して直接実行するユーザーが必ずいて、その場合は権限が不足しているためスクリプトが失敗してしまいます。回避策として、まずvbsスクリプトを呼び出し、vbsスクリプトを通してbatのrunas部分を管理者として呼び出すことでbatを起動させることができます。

私たちのスクリプトはrunasの下に書くことができるので、batスクリプトをクリックすると、管理者として実行することができます。

サンプルコードは以下の通りです。

@ECHO OFF
setlocal EnableDelayedExpansion
color 3e
title Add service configuration
 
PUSHD %~DP0 & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas",""," runas",1)(window.close)&goto :eof
:runas
 
::fill in your own script
 
echo Execution complete, any key to exit
 
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""", "::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
echo The current run path is: %CD%
echo Administrator privileges have been obtained

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", "", "", "", "runas", 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)^&& quot;%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exe,&excd%"/c **************************************************************************** 終了

1つのパラメータに適用される

%2 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd. exe","/c "^&chr(34)^&& quot;%~0"^&chr(34)^&" "^&chr(34)^&"%~1"^&chr(34)^&" : :","%cd%", "runas",1)(window. close)&&終了

その他のパラメータなどについては
もう1つのパラメータ :: を付けてバッチを実行すると、この文は実行されない
8.3 のショートパスとの互換性を保つために %~0 などを %~s0 その他
理論的には問題ないのですが、スタートパスが不安定なこともあり、その後に pushd または

cd /d

8. 管理者権限でbatファイルを実行するいくつかの方法

1. batのショートカットを作成し、ショートカットを右クリック -->プロパティ -->詳細 -->管理者として実行します。
2、bat to exeツールをダウンロードし、batをexeに変換し、exeを右クリック-->プロパティ-->互換性-->管理者として実行します。
3. 管理者権限でcmdを実行し、dos boxで対応するbatを実行します。

管理者権限でbatバッチを実行する方法についての説明は以上となります。管理者権限でbatを実行する方法については、スクリプトハウスの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。