システム構成などにかかわる変更は管理者権限が必要となります。
ただ、管理者権限でログインしているのにもかかわらず、実行するプロセスが管理者権限で実行されていないとエラーとなるケースがあり、いちいち「管理者権限で実行」を選択するのが煩わしいです。 または、ユーザーに手順を説明する際に操作ミスによるトラブルを避けるうえでも、BATを実行しただけで管理者権限で実行されるのが望ましいケースなどがあります。
今回はBATを実行するだけで管理者権限で実行するスクリプトについて記載しています。
1.次のコードでBATファイルを作成します。
[●●●●●.bat]
@echo off
REM ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
REM ■ ■
REM ■ 管理者権限実行させるBATを前面にする為、初期実行BATを最小化する ■
REM ■ ■
REM ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
if not "%SETUP%"=="●●●●●.bat" (
set SETUP=●●●●●.bat
start /min cmd /c,"%~0" %*
exit
)
REM ■■■■■■■■■■■■■■■■■■■■■■■■
REM ■ ■
REM ■ PowerShellを利用して管理者権限で実行する ■
REM ■ ■
REM ■■■■■■■■■■■■■■■■■■■■■■■■
powershell.exe -Command Start-Process """▲▲▲▲▲.bat""" -Verb Runa
●●●●● = 初期実行BATファイル(本スクリプト)
▲▲▲▲▲ = 管理者権限で実行するBATファイル
2.「▲▲▲▲▲.bat」と同じ階層に「●●●●●.bat」を配置します。
3.「●●●●●.bat」を実行します。
「●●●●●.bat」が起動してプロンプトが一瞬表示された後、「▲▲▲▲▲.bat」を起動して「●●●●●.bat」は最小化されます。
「▲▲▲▲▲.bat」の処理が終了すると「●●●●●.bat」も終了します。
実行するアカウントに管理者権限がない場合、管理者アカウント情報の入力画面が表示されます。
また、実際にはここで入力されたアカウントのパスで処理が進むため呼び出すスクリプトでの記述には注意が必要です。