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」は次のように書いており、単に昇格ダイアログを表示するだけです。
@echo off
cd /d "%~dp0"
Bin\elevate.cmd Bin\install.bat
goto :EOF
こんな感じですれば、後からユーザーアカウント制御に邪魔されることなく、バッチファイルに記載しているコマンドをすべて実行できました。
![]() |
Windowsサーバー Hacks ―管理者必携のテクニック & WSHスクリプト 100選 Mitch Tulloch 高橋 基信 オライリージャパン 2005-05-26 |