runasコマンドでパスワードをSendKeysで自動送信するには?

解決


モモ  2008-09-02 20:42:13  No: 101042

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されてました。。

お手数ですが、宜しくお願いします。


higadesu  2008-09-07 09:23:24  No: 101043

objShell.Run(strRunas, 1, True)
  の第三引数がなぜ「True」なのでしょうか?
  True : 実行したプログラムが終了するまで、処理を待機します。
と言う意味とおもわれるのですが、
  objShell.Run(strRunas, 1, False)
でも同じ結果なのでしょうか?


モモ  2008-09-09 02:24:06  No: 101044

>higadesuさん
書き込みありがとうございます。
True,Falseは関係なかったみたいです。

「WSHShell.AppActivate "runas.exe"」
を追加してパスワード入力したいウィンドウを指定して
アクティブにしたら、無事処理できました。

ただ、タイミングによっては
動きが不安定なので、Sleepの長さを微調整する
必要があるみたいです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加