

コマンドプロンプトで実行したいコマンドが
「route add ***.***.***.*** mask 255.255.255.255 ***.***.***.***」 (*は、任意のIP)
だとします。
XPでは問題ないですが、Vista以降だと、管理者権限が必要なコマンドのため、
そもそもコマンドプロンプト自体を「管理者として実行」モードで起動する必要があります。
上記を、手作業で行う場合は、それで解決しますが、
同じ事を、VBのコードから実行したい場合、
System.Diagnostics.Process.Start
を使い、(以下サンプルコード)
---------------------------
Dim psi As New System.Diagnostics.ProcessStartInfo()
psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec")
psi.UseShellExecute = False
psi.CreateNoWindow = True
psi.Arguments = "/c route add ***.***.***.*** mask 255.255.255.255 ***.***.***.***"
Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start(psi)
p.WaitForExit()
-----------------------------------------------------------
とすると、XPでは、管理者権限を問われないので実行できますが、
Vista以降だと、コマンドが管理者権限で実行されていないためか実行が完了せず、コマンドの内容も行われていません。(route addコマンドの記述にミスは無いとします。)
Vista以降の場合、手作業で、コマンドプロンプトを右クリックして「管理者として実行」を選んで起動し、コマンドを実行するのと同じ事を、
VBのコードから行うには、どうしたらいいのでしょうか?
分かる方、教えてください。お願いします。
No.1ベストアンサー
- 回答日時:
この回答への補足
回答ありがとうございます。
「runas」は、既に試しています。
しかし、Vista以降の環境でこのオプションを使って実行すると
「他のユーザーとして実行する」という旨の
ユーザー名とパスワードを入力させるダイアログが表示されてしまいます。
例えばVista以降のPCで、右クリックして「管理者として実行」を選んでも
管理者のユーザー名とパスワードを入力させるダイアログは表示されません。
「許可」か「拒否」かだけを問う画面が表示されるだけです。
その様にしたいのです。
すみません。再度試した結果、
ユーザーの選択を要求されるダイアログはXPの環境だけで出て、
Vista以降の環境では、求めていた通りの「許可」を問うだけのダイアログになっていました。
私の勘違いでした。
OSを判断して、XPでは、RunAs を指定しないコードにすれば解決しそうです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- UNIX・Linux UbuntuにROSをインストールしたい 1 2023/03/06 12:28
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- オープンソース コマンドプロンプトのコードの実行方法を教えて欲しい 2 2022/11/26 20:45
- ノートパソコン cipher でデータが消えない 4 2022/06/01 14:58
- UNIX・Linux shellscript内のコマンドを、sudo(toor)として実行 2 2022/09/23 15:05
- その他(プログラミング・Web制作) DOSコマンドに詳しい方、お知恵をお貸しください 5 2022/11/04 20:55
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelのマクロは管理者でないと実行できませんか
Excel(エクセル)
-
VB.NETでDOSコマンドの複数実行
Visual Basic(VBA)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
-
4
VB.NETでのDOSコマンドを実行について
Visual Basic(VBA)
-
5
runas実行した時にきかれるパスワードを手入力以外で読み込ませたい
その他(プログラミング・Web制作)
-
6
コマンドプロンプト実行後に画面を閉じない方法
Visual Basic(VBA)
-
7
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
8
SHELLコマンドがうまく動かないです VB6.0
Visual Basic(VBA)
-
9
VB.NETでコマンドプロンプトの操作
Visual Basic(VBA)
-
10
コンソールアプリケーションのコマンドプロンプト画面を非表示
Visual Basic(VBA)
-
11
メッセージを他のPCに出したい
Visual Basic(VBA)
-
12
ShellExecuteExでスペースを含む引数を渡すには?
Windows Vista・XP
-
13
ExcelVBAにてアプリをタスクマネージャーから強制終了させたいのですが
Visual Basic(VBA)
-
14
VBAで外部プログラムを非表示で実行するには
Visual Basic(VBA)
-
15
VBAのコマンドプロンプトでpauseを使う方法
Visual Basic(VBA)
-
16
PowerShellを使って関連付けられたアプリケーションでファイルを開く時のエラー
Excel(エクセル)
-
17
VBフォームアプリケーションにおけるcmdプロンプトの実行
Visual Basic(VBA)
-
18
エクセルvbaでdocuworksprinterの出力先を設定
Visual Basic(VBA)
-
19
コマンドプロンプトが実行中か、終了してるかってどこで見たら良いんでしょうか? 調べたらタスクマネージ
ノートパソコン
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBプログラムから「管理者とし...
-
ACCESSでタイトルバーを非表示...
-
C#からバッチファイルを起動で
-
MacOS:ターミナルではNPMのコ...
-
staticのメモリ共有について
-
batよりjava起動
-
CloudSticky.jarが起動しない。
-
実行したらがメモ帳出て来てしまう
-
32bitアプリから64bitアプリの...
-
Eclipseで、プロジェクト名のと...
-
Javascriptの値をJava(JSP)へ渡...
-
正しいURL指定しているにもかか...
-
classファイルについて
-
eclipseのショトカットキー
-
Eclipse・プロジェクトで、フォ...
-
vs codeはオフラインでも使用で...
-
タグが閉じてないというエラー...
-
The requested resource is no...
-
javaが文字コードの影響でコン...
-
Eclipse(JAVA)のデバッグで他...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MacOS:ターミナルではNPMのコ...
-
VBプログラムから「管理者とし...
-
batよりjava起動
-
ACCESSでタイトルバーを非表示...
-
ShellExecuteの使い方について
-
windowsのタスクスケジューラを...
-
C# コマンドプロンプト画面で表...
-
32bitアプリから64bitアプリの...
-
SYSTEM関数等を用いて複数のコ...
-
jarファイルをバッチで実行させ...
-
コマンドを実行してコマンドラ...
-
バッチファイルの書き方について
-
Java JDK1.3のインストールとpa...
-
CloudSticky.jarが起動しない。
-
Tomcatのメモリー使用量が知りたい
-
EclipseのJAVADOC生成機能について
-
コマンドプロンプトが使えない
-
実行したらがメモ帳出て来てしまう
-
VB6.0 ラベルが文字化け
-
ShellExecuteでDOSコマンド実行...
おすすめ情報