バッチファイルの中から管理者権限の必要なコマンドを実行したいときは、バッチファイルの起動元のコマンドプロンプトが「管理者として実行」で起動されている必要があります(あるいは、バッチファイルを右クリックして「管理者として実行」)。
次のバッチファイルでは、自分自身が「管理者として実行」で起動されているかを調べ、そうでなければバッチファイルを終了するようにしています。
@echo off
REM Exit if not admin
net session >null 2>&1
if %ERRORLEVEL% neq 0 (
echo Error: Need to run as Administrator
exit /b
)
...管理者権限が必要な処理...
管理者権限があるかどうかを調べるための構文はなさそうなので、ここでは管理者権限が必要な net session
コマンドを実行してみて、エラーにならない (ERRORLEVEL==0
) かどうかを調べています。