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