• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBプログラムから「管理者として実行」したい)

VBプログラムから「管理者として実行」する方法

このQ&Aのポイント
  • VBプログラムから「管理者として実行」する方法を学びましょう。VBプログラムでコマンドプロンプトを起動し、特定のコマンドを実行するためには、管理者権限が必要です。XPでは問題ありませんが、Vista以降では手作業ではなくVBのコードから実行するためには、特別な手順が必要です。
  • 一般的な方法として、VBのコードから「管理者として実行」するためには、System.Diagnostics.ProcessStartInfoオブジェクトを使用します。VBコード内で、このオブジェクトを作成し、必要なプロパティを設定します。例えば、FileNameプロパティにコマンドプロンプトのパスを指定し、Argumentsプロパティに実行したいコマンドを指定します。さらに、UseShellExecuteプロパティをFalseに設定することで、シェルの実行を回避し、CreateNoWindowプロパティをTrueに設定することで、コマンドプロンプトのウィンドウを表示しないようにします。
  • VBのコードから「管理者として実行」する場合、XPでは問題ありませんが、Vista以降ではUAC(ユーザーアカウント制御)の制約により、VBのプロセス自体を管理者として実行する必要があります。そのため、VBのプロジェクトのマニフェストファイルに、<requestedExecutionLevel level="requireAdministrator"/>を追加する必要があります。これにより、VBのプログラムが必ず管理者権限で実行されるようになります。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1
mshs
質問者

お礼

すみません。再度試した結果、 ユーザーの選択を要求されるダイアログはXPの環境だけで出て、 Vista以降の環境では、求めていた通りの「許可」を問うだけのダイアログになっていました。 私の勘違いでした。 OSを判断して、XPでは、RunAs を指定しないコードにすれば解決しそうです。 ありがとうございました。

mshs
質問者

補足

回答ありがとうございます。 「runas」は、既に試しています。 しかし、Vista以降の環境でこのオプションを使って実行すると 「他のユーザーとして実行する」という旨の ユーザー名とパスワードを入力させるダイアログが表示されてしまいます。 例えばVista以降のPCで、右クリックして「管理者として実行」を選んでも 管理者のユーザー名とパスワードを入力させるダイアログは表示されません。 「許可」か「拒否」かだけを問う画面が表示されるだけです。 その様にしたいのです。

関連するQ&A