質問: WshShell.Run("runas /user:管理者権限ID cmd.exe") WScript.Sleep 100 WshShell.AppActivate "runas.exe" WScript.Sleep 100 WshShell.SendKeys "管理者権限PW" WScript.Sleep 100 WshShell.SendKeys "{enter}" WScript.Sleep 100 WshShell.AppActivate "cmd" WScript.Sleep 100
回答: まず、前提のお話ですが一般ユーザーで実行されたスクリプト(A)から、RunAsコマンドで起動されたcmd.exe(B)へのSendKeyは自動的に失敗します。 理由はセキュリティの観点から、そういう動作をOSが禁止しているからです。 その為、GUI操作でデフォルトゲートウェイ変更操作をSendKeyで代用する案は自動的に失敗します。 対処案として、考えられるのは以下の2つかと思います。 1. RunAsコマンドでcmd.exeでは無く、Sendkeyを含んだスクリプトを呼び出す。 2. RunAsコマンドで、Netshコマンドを使ったデフォルトゲートウェイ変更スクリプトを呼び出す。 お勧めとしては、2案です。 何もGUI操作をSendKeyで代用させずとも、ネットワーク設定の変更はNetshコマンドで可能です。 こちらを使用する事をお勧めします。