VBScript を『管理者として実行する』には、以下の内容ををスクリプトの先頭に記述します
🔻 VBScript
Set obj = Wscript.CreateObject("Shell.Application") if Wscript.Arguments.Count = 0 then obj.ShellExecute "wscript.exe", WScript.ScriptFullName & " runas", "", "runas", 1 Wscript.Quit end if Wscript.Echo "ここは管理者権限で実行されます"
🔻 Jscript
※ Jscript は WScript 等、大文字小文字の区別があるので注意です。
var obj = new ActiveXObject("Shell.Application"); if ( WScript.Arguments.length == 0 ) { obj.ShellExecute( "wscript.exe", WScript.ScriptFullName + " runas", "", "runas", 1 ); WScript.Quit(); } WScript.Echo( "ここは管理者権限で実行されます" );
Shell.ShellExecute method これは、VBScript から利用可能な Shell の機能を使って、右クリックメニューにある『管理者として実行』を実行する方法です。ここでは日本語では無く runas と言う文字列を使って管理者として実行させています。 但し、引数がなかった場合の処理としては処理終了します。ですからこのスクリプトでは、引数をダミーで一つセットして( この場合一つめの runas がそうです )自分自身を再度呼び出しています。 つまり、Windows からすれば二度目の実行が管理者としての実行になります。 この場合は、スクリプトに引数を渡す事ができません。もし渡したい場合は、違ったトリックを使う必要があるのに注意して下さい。(その場合は、外部ファイルから入力するのがもっとも簡単で確実だと思います)
【VBScript関連のカテゴリ】