管理者としてバッチファイルを実行
バッチ ファイルは、コマンド プロンプトによって実行されるコマンドで構成されます。 これらのコマンドの一部は、管理者の許可がないと実行できません。 したがって、管理者としてバッチ ファイルを実行することが重要です。
手動で、実行するバッチ ファイルを右クリックし、[管理者として実行] を選択して、バッチ ファイルを管理者として実行できます。
毎回手動で実行する代わりに、バッチ ファイルの先頭にコードを追加するだけで、管理者として自動的に実行することもできます。
または、ショートカットを作成し、プロパティ ウィンドウから管理者として実行するように設定することもできます。 バッチ ファイルをダブルクリックするたびに、管理者として実行されます。
管理者としてバッチ ファイルを自動的に実行する方法は多数あります。 このチュートリアルでは、管理者としてバッチ ファイルを実行するさまざまな方法について説明します。
管理者として実行するバッチ ファイルのショートカットを作成する
管理者モードでバッチ ファイルを実行する簡単な方法は、ショートカットを作成し、常に管理者として実行するように設定することです。 バッチ ファイルを右クリックし、[ショートカットの作成] をクリックしてショートカットを作成します。
デスクトップにショートカットファイルが作成されます。 ショートカット ファイルを右クリックして、そのショートカット ファイルの [プロパティ] ウィンドウに移動します。
[ショートカット] タブの [詳細設定] をクリックし、[管理者として実行] チェックボックスを選択します。
以上で、ショートカットは常に管理者モードで実行されるように設定されました。 ショートカット ファイルをダブルクリックすると、確認用の UAC ウィンドウが表示されます。
上記の方法を適用すると、バッチ ファイルの現在のディレクトリが変更されます。 これによりエラーが発生したり、ファイルが実行されない場合があります。 これを回避するには、バッチ ファイルの先頭に次の行を追加するだけです。
@setlocal enableextensions
@cd /d "%~dp0"
例:
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
::START OF THE PROGRAM::
echo "Check the system's energy efficiency"
powercfg-energy
上記のコードは、現在のディレクトリをバッチ ファイルの場所に変更します。
出力:
管理者として実行するバッチ ファイルのコーディング
runas
コマンドを使用して、管理者としてバッチ ファイルを実行する
バッチ ファイルに、管理者特権を必要とする特定の行または一連の行が含まれている場合、runas
コマンドを使用して特定の行を管理モードで実行できます。
@echo off
echo "Check the system's energy efficiency"
runas /user:sid "cmd /k ipconfig"
出力:
また
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
echo "Check the system's energy efficiency"
runas /user:sid "notepad C:\Users\sid\Desktop\testfile.bat"
上記のコードは、管理者ユーザーの下でバッチ ファイルを実行します。 プロンプトが表示されたら、パスワードを入力します。
/savecred
を使用してパスワードを保存し、次にバッチ ファイルを実行するときに使用することもできます。 パスワードを入力する必要があるのは 1 回だけです。
出力:
管理者としてバッチ ファイルを実行するための VBS ファイルの作成
バッチ ファイルへのショートカットを作成すると、現在の作業ディレクトリも変更されます。
代わりに、バッチ ファイルの先頭に次のコードを追加できます。 これにより、バッチ ファイルが管理者モードで実行され、同じディレクトリに残ります。
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\adminmode.vbs" del "%temp%\adminmode.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\adminmode.vbs" && "%temp%\adminmode.vbs" && exit /B )
例:
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\adminmode.vbs" del "%temp%\adminmode.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\adminmode.vbs" && "%temp%\adminmode.vbs" && exit /B )
echo "Check the system's energy efficiency"
powercfg -energy
上記のコードは、ファイルが管理者モードで実行されているかどうかを確認します。 そうでない場合は、VBS ファイル adminmode.vbs
を作成し、runas
パラメーターを使用して管理者モードでバッチ ファイルを再実行します。
バッチ ファイルにアクセスするには、cd /d "%~dp0"
を使用しました。
d
- ドライブ文字に展開しますp
- パスに展開します0
- フルパスに展開
%~dp0
は、現在のディレクトリをバッチ ファイルのディレクトリに変更します。 バッチ ファイルを実行すると、確認のための UAC プロンプトが表示され、管理者として実行されます。
出力:
まとめ
そのため、管理者としてバッチ ファイルを実行する 2つの異なる方法について説明しました。
また、elevate ユーティリティを使用する、バッチ ファイルを .exe
に変換する、または sudo
コマンドをインストールするなど、管理者モードでバッチ ファイルを実行する方法は他にもあります。 ただし、上記の方法は、初心者でも簡単に実装できます。