UAC によるセキュリティの影響で VBScript を使う場合、管理者権限で実行しないとレジストリの一部には書き込めるのに重要なフォルダには書き込めないというような OS が決めたルールがあります。 それに対する対処方法は、もっとも簡単な記述では以下のようになります
1.
' 管理者として実行を強制する
2.
Set
obj = Wscript.CreateObject(
"Shell.Application"
)
3.
if Wscript.Arguments.Count = 0 then
4.
obj.ShellExecute
"wscript.exe"
, WScript.ScriptFullName &
" runas"
,
""
,
"runas"
, 1
5.
Wscript.Quit
6.
end if
Shell.ShellExecute method これは、VBScript から利用可能な Shell の機能を使って、右クリックメニューにある『管理者として実行』を実行する方法です。ここでは日本語では無く runas と言う文字列を使って管理者として実行させています。 但し、注意するのは引数なしで実行された場合に、引数をダミーで一つセットして( この場合一つめの runas がそうです )自分自身を再度呼び出して、引数がなかった場合の処理としては処理終了します。 つまり、二度目の実行が管理者としての実行になります。 この場合は、スクリプトに引数を渡す事ができません。もし渡したいしたい場合は、違ったトリックを使う必要があるのに注意して下さい。(その場合は、外部ファイルから入力するのがもっとも簡単で確実だと思います)
VBScriptドキュメント
|
【VBS + Shellの最新記事】
- 管理者権限でコマンドプロンプトを開く VBScript
- 他のアプリケーションを『管理者権限』で実行するコマンドライン
- シャットダウンダイアログを表示する / ログオフ・リブート・シャットダウン / VBScript
- Windows のファイルの『更新日付』のみ VBScript + Shell.Application で変更
- VBScript : プロパティダイアログを表示する
- VBScript : キーストロークをウインドウに送信して、キー操作をした事にする( 例:リモート デスクトップ接続ダイアログ )
- VBScript : ファイルやフォルダを右クリックすると表示されるコマンド文字列の一覧を取得して、それを使ってコマンドを実行する
- VBScript : Shell.Application で開くWindows ツール
- Windows7 : VBScriptで、コントロールパネル内のエントリの実行
- シャットダウンダイアログを開くスクリプトと、シャットダウンするスクリプト
【VBScript関連のカテゴリ】