管理者としてバッチファイルを実行

Siddharth Bishnoi 2023年3月20日
  1. 管理者として実行するバッチ ファイルのショートカットを作成する
  2. 管理者として実行するバッチ ファイルのコーディング
  3. まとめ
管理者としてバッチファイルを実行

バッチ ファイルは、コマンド プロンプトによって実行されるコマンドで構成されます。 これらのコマンドの一部は、管理者の許可がないと実行できません。 したがって、管理者としてバッチ ファイルを実行することが重要です。

手動で、実行するバッチ ファイルを右クリックし、[管理者として実行] を選択して、バッチ ファイルを管理者として実行できます。

毎回手動で実行する代わりに、バッチ ファイルの先頭にコードを追加するだけで、管理者として自動的に実行することもできます。

または、ショートカットを作成し、プロパティ ウィンドウから管理者として実行するように設定することもできます。 バッチ ファイルをダブルクリックするたびに、管理者として実行されます。

管理者としてバッチ ファイルを自動的に実行する方法は多数あります。 このチュートリアルでは、管理者としてバッチ ファイルを実行するさまざまな方法について説明します。

管理者として実行するバッチ ファイルのショートカットを作成する

管理者モードでバッチ ファイルを実行する簡単な方法は、ショートカットを作成し、常に管理者として実行するように設定することです。 バッチ ファイルを右クリックし、[ショートカットの作成] をクリックしてショートカットを作成します。

ショートカットを作成

デスクトップにショートカットファイルが作成されます。 ショートカット ファイルを右クリックして、そのショートカット ファイルの [プロパティ] ウィンドウに移動します。

プロパティウィンドウを開く

[ショートカット] タブの [詳細設定] をクリックし、[管理者として実行] チェックボックスを選択します。

プロパティ詳細オプション

以上で、ショートカットは常に管理者モードで実行されるように設定されました。 ショートカット ファイルをダブルクリックすると、確認用の 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"

testfile runas コマンド

出力:

出力 runas コマンド

また

@echo off
@setlocal enableextensions
@cd /d "%~dp0"
echo "Check the system's energy efficiency"
runas /user:sid "notepad C:\Users\sid\Desktop\testfile.bat"

testfile runas ファイル

上記のコードは、管理者ユーザーの下でバッチ ファイルを実行します。 プロンプトが表示されたら、パスワードを入力します。

/savecred を使用してパスワードを保存し、次にバッチ ファイルを実行するときに使用することもできます。 パスワードを入力する必要があるのは 1 回だけです。

出力:

出力 runas ファイル

管理者としてバッチ ファイルを実行するための 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

testfile create vbs

上記のコードは、ファイルが管理者モードで実行されているかどうかを確認します。 そうでない場合は、VBS ファイル adminmode.vbs を作成し、runas パラメーターを使用して管理者モードでバッチ ファイルを再実行します。

バッチ ファイルにアクセスするには、cd /d "%~dp0" を使用しました。

  1. d - ドライブ文字に展開します
  2. p - パスに展開します
  3. 0 - フルパスに展開

%~dp0 は、現在のディレクトリをバッチ ファイルのディレクトリに変更します。 バッチ ファイルを実行すると、確認のための UAC プロンプトが表示され、管理者として実行されます。

出力:

testfile create vbs output

まとめ

そのため、管理者としてバッチ ファイルを実行する 2つの異なる方法について説明しました。

また、elevate ユーティリティを使用する、バッチ ファイルを .exe に変換する、または sudo コマンドをインストールするなど、管理者モードでバッチ ファイルを実行する方法は他にもあります。 ただし、上記の方法は、初心者でも簡単に実装できます。

関連記事 - Batch File