バッチファイルを管理者権限で開く
- test.bat
@echo off :RUNAS whoami /PRIV | FIND "SeLoadDriverPrivilege" > NUL IF not errorlevel 1 GOTO START ECHO 処理を続行するには管理者権限が必要です。 ECHO 管理者モードで再起動します START cmd.lnk /K "%0" %~d0 %~p0 exit :START CD /D %1\%2 ~以下管理者権限でやりたいこと~
説明
1行目:エコーを切る。まあこの情報が必要な人には分かりきってることだろう。
2行目:単にラベル
3行目:2つのコマンドからなっているが現在管理者権限があるかを確認する。
「whoami /PRIV」で現在の権限リストを出してFINDコマンドで特定文字列があるかをチェックする
管理者権限でしかないものなら何でも良い、ちなみにデバイスの組み込み権限にしてある。
4行目:FINDの結果を判定 FINDで特定文字列が見つからなければエラーが返ってるのでエラーがなければSTARTレベルへジャンプ
5,6行目:単にメッセージ(別になくてもいい)
7行目:cmd.lnkはショートカットの実体ファイル名。STARTコマンドでそれを実行。
STARTコマンドは対象のファイルをダブルクリックしたのと同じで実行可能ファイルでなくても関連付けで開くことも出来る。
以降引数を与える。%0でバッチファイルを指定してバッチファイルを実行させる。
その後2つ%~d0 %~p0で元のドライブとパスを与えておいて10行目でカレントフォルダをバッチファイルの位置に設定する
ちなみに、このままだと最初から管理者権限があった場合“CD”でおかしな事になるはず、まあその辺は色々・・