runasコマンドを使って、ログインしているユーザではなく特定の共通ユーザで処理をさせようとしてます。
runasが実行された時に、新しくコマンドプロンプトが開くのですが、
そのコマンドプロンプトに対して呼び出し元からパスワードを
SendKeysにて送信したいのですが、うまくいきません。
解決方法を教えていただけますでしょうか。
-----------------------------------------------------
Set objShell = CreateObject("WScript.Shell")
strCommand = """cscript.exe aaa.vbs""""
'runasと外部コマンドの設定
strRunas = "runas /user:test_user " & strCommand
iReturn = objShell.Run(strRunas, 1, True)
WScript.Sleep (100)
objShell.SendKeys "pswd"
objShell.SendKeys "{Enter}"
--------------------------------------------------
上記のやり方では、
「iReturn = objShell.Run(strRunas, 1, True)」
で呼び出したパスワード入力を求めてくるウィンドウを
閉じた後に元のバッチファイルウィンドウに
対してSendKeysされてました。。
お手数ですが、宜しくお願いします。
objShell.Run(strRunas, 1, True)
の第三引数がなぜ「True」なのでしょうか?
True : 実行したプログラムが終了するまで、処理を待機します。
と言う意味とおもわれるのですが、
objShell.Run(strRunas, 1, False)
でも同じ結果なのでしょうか?
>higadesuさん
書き込みありがとうございます。
True,Falseは関係なかったみたいです。
「WSHShell.AppActivate "runas.exe"」
を追加してパスワード入力したいウィンドウを指定して
アクティブにしたら、無事処理できました。
ただ、タイミングによっては
動きが不安定なので、Sleepの長さを微調整する
必要があるみたいです。