第一引数にフォルダのパスを指定するようにしています。指定しなければ、カレントフォルダで開きます。 管理者で実行するのは、ShellExecute に、"runas" を渡して実行しているからです。これは、右クリックで表示されるメニューにある『管理者として実行』に相当します acmd.vbs
Set obj = CreateObject("Shell.Application") Set WshShell = CreateObject( "WScript.Shell" ) if WScript.Arguments.Count <> 0 then obj.ShellExecute "cmd.exe", "/s /k pushd """ & WScript.Arguments(0) & """", "", "runas", 1 else obj.ShellExecute "cmd.exe", "/s /k pushd """ & WshShell.CurrentDirectory & """", "", "runas", 1 end if
このスクリプトを Windows の system32 フォルダへコピーして、以下のようにレジストリ登録すると、フォルダを右クリックしてその場所で実行可能になります
( Windows の system32 フォルダである必要はありません / PC 共通の表現だとこれが間違いないので使用しています )
※ 32ビットアプリより system32 にアクセスしようとすると、SysWoW64 にリダイレクトされます
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Folder\shell\acmd] @="管理者コマンドプロンプト" [HKEY_CLASSES_ROOT\Folder\shell\acmd\command] @="wscript c:\\windows\\system32\\acmd.vbs \"%V\""
※ system32 フォルダへコピーしたスクリプトを編集するには、エディタの実行時に『管理者として実行』する必要があります。 単に管理者としてコマンドプロンプトを開きたい場合は、Windowsキー + S で『ここに入力して検索』内に cmd と入力して CTRL + SHIFT + ENTER すればいいでしょう あるいは、通常のコマンドプロンプトを起動して、タスクバーのアイコンを Ctrl と Shift キーを押しながらクリックします。 関連する外部の記事 windows - How to run vbs as administrator from vbs? - Stack Overflow
VBScriptドキュメント
|
【VBS + Shellの最新記事】
- VBScript を『管理者として実行する』には、Shell の runas ( 右クリックメニューの実行と同等 ) で実現します / Jscript も追加
- VBScript : キーストロークをウインドウに送信して、キー操作をした事にする( 例 : リモート デスクトップ接続ダイアログ )
- エクスプローラのフォルダから管理者権限でコマンドプロンプトを開く / 右クリックから『送る』で開く
- シャットダウンダイアログを表示する / ログオフ・リブート・シャットダウン / VBScript
- Windows のファイルの『更新日付』のみ VBScript + Shell.Application で変更
- VBScript : プロパティダイアログを表示する
- VBScript : ファイルやフォルダを右クリックすると表示されるコマンド文字列の一覧を取得して、それを使ってコマンドを実行する
- VBScript : Shell.Application で開くWindows ツール
- Windows7 : VBScriptで、コントロールパネル内のエントリの実行
- シャットダウンダイアログを開くスクリプトと、シャットダウンするスクリプト
【VBScript関連のカテゴリ】