Windowsのバッチファイルにて、regaddコマンドなど特権が必要なものを実行しようとした際に、“管理者として実行”をしていないために実行できない場合があります。
そんな場合は、ユーザが気をつけて“管理者として実行”してくれればいいんですが、世の中には説明をまったく読まない方もいるので、そういう場合の事前策です。
いろいろ調べてみると、VBScriptやPowerShellなどは自分で昇格ダイアログを表示できるようなので、そういったスクリプトで実行してもよかったんですが、さらに調べるとLinuxのsudoコマンドのような形でVBScriptを提供している方がいました。
ファイルの入手先はこちらです。
New Elevation PowerToys for Windows VistaにあるElevation2008_06.exeをダウンロード
The Elevation PowerToys and Windows 7 にあるElevate_Win7beta_fixed.zipをダウンロード


まず、Elevation2008_06.exeを実行して解凍します。その中にある「elevate.cmd」をコピーします。
次にElevate_Win7beta_fixed.zipを解凍して、「Elevate.vbs」をコピーします。
そしてそれらとともに権限を昇格したいバッチを「Bin」など適当なフォルダに格納します。今回は「install.bat」としています。
最後に、そのバッチをたたく「Setup.bat」を、「Bin」フォルダと同じ場所に設置します。
階層的には次のようなイメージです。
./
│
├ Setup.bat (昇格ダイアログを出す踏み台バッチ)
│
└ Bin/
│
├ elevate.cmd (Elevation2008_06.exeより)
│
├ Elevate.vbs (Elevate_Win7beta_fixed.zipより)
│
└ install.bat (昇格して実行したいバッチファイル) |
|


「Setup.bat」は次のように書いており、単に昇格ダイアログを表示するだけです。
@echo off
cd /d "%~dp0"
Bin\elevate.cmd Bin\install.bat
goto :EOF
こんな感じですれば、後からユーザーアカウント制御に邪魔されることなく、バッチファイルに記載しているコマンドをすべて実行できました。