• 締切済み

JP1からvbs(PSExec)が起動できない

突然失礼します。 以下のサーバーAにあるvbsを、JP1から起動しようとしていますが、うまく起動しないので、もし原因が分かる方がいたら、ご教授願いたいです。 起動しようとしているサーバーAの「test.vbs」は、簡単に言うと、PsExecを利用して、サーバーBの「hoge.bat」を実行する内容です。 ***test.vbs*** Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "PsExec.exe サーバーBIPアドレス -u 実行ユーザ -p 実行ユーザーパスワード cmd" WshShell.AppActivate "cmd " WScript.Sleep 3000 WshShell.SendKeys "cd C:\" WshShell.SendKeys "{enter}" WshShell.SendKeys "hoge.bat" WshShell.SendKeys "{enter}" WScript.Sleep 10000 WshShell.AppActivate "cmd" WshShell.SendKeys "exit" WshShell.SendKeys "{enter}" ************************ 上記バッチを手動で実行するとうまくいくのですが、 JP1で起動しようとすると、うまくいきません。 そもそもPsExecが実行出来ていないかも。。。。 宜しくお願いします。

noname#159677
noname#159677

みんなの回答

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.4

◆Aサーバー(サーバーBの「hoge.bat」を実行するvbsが存在するサーバー)  Windows Server 2003 R2 Enterprise Edition ServicePack2 ◆Bサーバー(hoge.bat実行環境)  Windows Server 2008 R2 Enterprise ◆JP1インストールサーバー  Windows Server 2003 R2 ※詳細不明  とのことなので、まず、JP1の環境の問題かバッチの問題かは切り分けされましたか? 上記の環境なら、JP1インストールサーバーにJP1 Manager(だったかな?)が入っていて、 BサーバーにJP1 Agent(だったかな?)が入っていて、ManagerとAgentを接続する設定が 正しくされていないとJP1インストールサーバーから、Bサーバーに実行指示ができなかったのでは? (JP1の設定を行うクライアントは関係なくってどのPCでもいいですが) まず、この点に問題がないことを確認するために hoge.batで、echo TEST >C:\temp\test.log とかを書いて実行し、c:\tempの中にできたtest.logをみてみるといいでしょう。 (できていないとかなら、JP1の環境の問題。 ただし、c:\tempに書き込みできるユーザーで実行されているかどうかは確認する 必要がありますが。・・・たしかJP1ではどのユーザーで実行するか設定があったはず。) 問題なければ、JP1の設定でどのユーザーで、Bサーバー上で処理を行う設定にしているかを確かめ そのユーザーでログインして、hoge.batを実行してみる。 エラーがでるなら、そのユーザーにはAサーバーでバッチ処理を実行する権限がないのでしょう。 エラーがでないなら、たぶん、動くはずなんだけれど、PATHとかJP1の設定で変更できたような 気がしますのでそこを確かめてみればいいと思います。

  • luka3
  • ベストアンサー率75% (279/372)
回答No.3

環境についてはわかりましたが、JP1インストールサーバーからどうやってAサーバーでプログラムを実行できるのかがよくわかりません。 JP1を利用中のユーザか日立のサポートに助言を求めた方がよろしいですね。 お役に立てずすみませんでした。

noname#159677
質問者

お礼

早急の回答ありがとうございます。 >お役に立てずすみませんでした。 ⇒とんでもありません。こちらこそお手数おかけしてすみませんでした。 また宜しくお願い致します。

  • luka3
  • ベストアンサー率75% (279/372)
回答No.2

サーバーAのWindowsOSにJP1がインストールされているのだと勝手に解釈していましたがあってますか? この場合、どちらも、サーバーAでの設定になります。 ご質問の際はできれば動作環境を教えていただけると答える側としてはとても助かります。

noname#159677
質問者

お礼

早急な回答して頂けたにも関わらず、返信が遅くなってしまい、失礼しました。 >サーバーAのWindowsOSにJP1がインストールされているのだと勝手に解釈していましたがあってますか? >この場合、どちらも、サーバーAでの設定になります。 ⇒すみません。説明不足でした。JP1がインストールされているサーバーと、サーバーAは異なります。 ◆Aサーバー(サーバーBの「hoge.bat」を実行するvbsが存在するサーバー)  Windows Server 2003 R2 Enterprise Edition ServicePack2 ◆Bサーバー(hoge.bat実行環境)  Windows Server 2008 R2 Enterprise ◆JP1インストールサーバー  Windows Server 2003 R2 ※詳細不明  >「デスクトップとの対話をサービスに許可」をチェックします。 何度も申し訳ありませんが、これはJP1のサービスの設定の認識であっていますでしょうか?

  • luka3
  • ベストアンサー率75% (279/372)
回答No.1

JP1がよくわからなくて、検索して最初に出てくる「日立製ミドルウェア」であってますか? これはたぶんサービスとして動いているものではないでしょうか。 説明は省略しますが、サービスからは対話型のGUIやCUIのプログラムを実行できません。 ではどうするか、ですが、最初に試して欲しいのは、サービスのログオンタブにある、 「デスクトップとの対話をサービスに許可」をチェックします。 これでダメな場合、タスクスケジューラを利用する方法はどうでしょう。 私がつい先日回答したこちらを参考にしてみてください。 http://okwave.jp/qa/q7634837.html サーバAがログイン画面のまま(誰もログインしてない状態)だと、動かないかもしれません。

noname#159677
質問者

補足

>luka3さん 早急に回答頂き、ありがとうございます。 >JP1がよくわからなくて、検索して最初に出てくる「日立製ミドルウェア」であってますか? ⇒あってます。 >ではどうするか、ですが、最初に試して欲しいのは、サービスのログオンタブにある、 >「デスクトップとの対話をサービスに許可」をチェックします。 ⇒ほんとに素人ですみません。これを設定するのは、JP1から実行するバッチがあるサーバーで設定を行うという理解であっていますでしょうか? 済みませんが、引続き宜しくお願い致します。

関連するQ&A

  • VBSのsendkeysで日本語を出力したいです

    WshShell.Run "explorer" WScript.Sleep 100 WshShell.AppActivate "explorer" WScript.Sleep 100 WshShell.SendKeys "C:\Users\Default\" WScript.Sleep 100 WshShell.SendKeys "デスクトップ" WScript.Sleep 100 WshShell.SendKeys "{ENTER}" WScript.Sleep 100 *.VBS ファイルに書き込んで、直接実行したいのですが、エラーになります。 どんなコマンドを足すといいのですか?

  • VBScript

    下記、プログラムを実行すると、コマンドプロンプトの画面が 消えずに、そのまま残ってしまいます。 どうしたら、画面を消すことができるでしょうか。 お力添えをお願いいたします。 Set WshShell = Wscript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("user") WshEnv("C:\NET\aaa.txt") = "administrator" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:administrator " + chr(34) + "xcopy D:\NET\aaa.txt C:\NET\aaa.txt" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXX") WshShell.SendKeys("{Enter}") WScript.Sleep(500)

  • Windows 7 でのWSH の挙動

    お世話になります。 msdnにある「電卓をアクティブにするサンプルを Vistaで実行すると、電卓がアクティブになり、 計算結果を吐き出しますが、 Windows7(Pro,SP1)で実行すると 最前面に電卓が出るものの アクティブになっていない上に、 複数の電卓がどんどん立ち上がってきます。 Vistaと7で、プロセス(?)の管理が 変わっているのだと思います。 7でも電卓をアクティブにするには、 どうすればいいのでしょうか? 以下コードです。 ================================================ set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "calc" WScript.Sleep 100 WshShell.AppActivate "Calculator" WScript.Sleep 100 WshShell.SendKeys "1{+}" WScript.Sleep 500 WshShell.SendKeys "2" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 500 WshShell.SendKeys "*3" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 2500 ================================================

  • VBSのSendKeysでクリックができない

    音声認識アプリケーションからvbsを実行できるのですが、ここで一度だけマウスクリックしたい状況が出てきて困っています。 Dim WSHShell As Object Set WSHShell = CreateObject("Wscript.Shell") WSHShell.AppActivate "操作したいアプリケーション名" WSHShell.SendKeys "{TAB}" 'OK WSHShell.SendKeys "{ENTER}" 'OK WSHShell.SendKeys "{CLICK LEFT, 10, 10}" 'NG TABキーやENTERキーは動作するのですが、3番目のマウスクリックがExceptionといわれエラーになってしまいます。Sendkeysでマウスクリックを送信するにはどうしたらよいのでしょうか?ネットで調べたリファレンスだと上記のような書き方で良さそうなのですが・・・ 音声認識アプリケーションはドラゴンスピーチ11Jで、OSはWin 7 ProとWin 8、どちらも64ビットです。

  • VBS(WSH)で開いたIEのウィンドウがアクティブにならない

    VBSでタイトルバーのみのIEウィンドウを開き、 SendKeyでtestと入力するスクリプトを作成しています。 ですが、開いたIEのウィンドウがアクティブにならず、 SendKeyがIEに送信されません。 VBSについては全くの初心者でして、ウィンドウがアクティブにならないのが 環境の問題なのか、プログラムの問題なのか判断できません。 どなたかご教授をお願いします。 IEのバージョンは8、OSはWinXPです。 以下、ソースです。 -------------------------------------------------- 'タイトルバーのみのIEを起動する Set WshShell = WScript.CreateObject("WScript.Shell") Set objIE = WScript.CreateObject("InternetExplorer.Application") objIE.Navigate("http://www.google.co.jp/") objIE.MenuBar = False objIE.StatusBar = False objIE.ToolBar = False objIE.AddressBar = False objIE.Visible = True '表示待ちループ Do While objIE.Busy WScript.Sleep 100 Loop '[test]で検索 WshShell.SendKeys("test") WScript.Sleep(100) WshShell.SendKeys("{TAB}") WScript.Sleep(100) WshShell.SendKeys("{ENTER}") --------------------------------------------------

  • VBSでバッチを実行できません。

    C:\temp\test.batをVBSで実行しようとするのですが、 何度やっても実行されません。 想像ですが、c:\WINNT\System32\cmd.exeが動いている ようなのですが、肝心のC:\temp\test.batが動きません。 以下のように記述しました。 Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run ("cmd /c c:\temp\test,0,True") WIN2K、IE6.0の環境です。 どこか記述に誤りでもあるのでしょうか? どうぞよろしくお願いいたします。

  • VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法

    VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法を教えてください。 現在、下のような方法で行っているのですが応用が利かないので改善したいと思っています。 Set IE = CreateObject("InternetExplorer.Application") Set WshShell = CreateObject("WScript.Shell") IE.Visible = True IE.Navigate("https://サイトのURL") Do Until IE.Busy = False WScript.Sleep 1000 WshShell.SendKeys "y" Loop '(セキュリティの警告が出るため) WScript.Sleep 100 WshShell.SendKeys "{TAB}" WScript.Sleep 100 WshShell.SendKeys "loginid" WScript.Sleep 100 WshShell.SendKeys "{TAB}" WScript.Sleep 100 WshShell.SendKeys "password" WScript.Sleep 100 WshShell.SendKeys "{TAB}" WshShell.SendKeys "{ENTER}" 操作したいページのソースの一部を抜粋すると下記のようになっています。 テキストボックス <INPUT type="text" name="loginId" class="Necessary" size="20" maxlength="5" value="" tabindex="20"> ボタン <INPUT class="button10" type="button" name="sentaku" value="認証" onClick="javascript:execute・・・・略 うまく操作できる方法を教えてください。 よろしくお願いします。

  • VBS runas実行時のパスワードを隠す方法について

    VBS runas実行時のパスワードを隠す方法について こんにちわ! いつもお世話になっております。 VBSでIPアドレスを変更するスクリプト(netshコマンドを実行する)を作成しました。 このコマンドを実行するためには管理者権限が必要なため、runasコマンド+SendKeys にて、自動的にパスワードを入力して実行するような形になっております。(下記) -----・-----・-----・-----・-----・-----・-----・-----・-----・-----・----- shshell.Run "cmd.exe", 0 WshShell.Run "runas /user:%computername%\administrator ""コマンド""" WshShell.SendKeys("{Enter}") WScript.Sleep(1500) WshShell.AppActivate "C:\Windows\System32\runas.exe" WshShell.SendKeys("パスワード") WshShell.SendKeys("{Enter}") -----・-----・-----・-----・-----・-----・-----・-----・-----・-----・----- [質問] このスクリプトのパスワードの部分を隠すまたは暗号化する方法を教えてください。 [背景] このスクリプトを作成者と使用者が違います。作成者は、管理者のパスワードを 把握していますが、使用者には管理者権限のパスワードを知られたくありません。 つまり、スクリプトを見れば分かってしまうという状況は避けたいのです。 [調査状況] ・ネットワーク上にパスワードを格納したテキスト等を置いておき、それを  読み取る。⇒これは、今回実行するスクリプトがIPアドレスを変更するもの  であるため、ネットワーク上の端末から情報を得ることができません。 ・タスクに登録する。⇒タスクに登録するために使用者のコンピュータ上に  スクリプトをおく必要があるため、これも不可です。 ・スクリプト自体を暗号化する。⇒最終手段として考えてはいますが、できれば  スクリプト内で処理を行いたいというのが現状です。(監督者の要望のため) [実行環境] ・Windows7 皆様、お忙しいとは思いますが、ご教授いただけると助かります。 以上 よろしくお願い致します。

  • WSHスクリプトでブラウザ更新

    教えてください。 WSHスクリプトでブラウザの更新をF5ではなくてControl + Rしたいのです。 Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 2000 WshShell.AppActivate "テスト" WScript.Sleep 2000 WshShell.SendKeys "^R" WScript.Sleep 2000 WScript.Echo "終了" 最初の一回目の実行時はできるのですが、それ以降更新してくれません。 よろしくお願いいたします。

  • バッチファイルファイル→VBS→エクセル マクロを有効にして起動

    Win/XP エクセル2002使用です。 VBSからエクセルのマクロを有効にして立ち上げたいのですが、 上手くいきません。 バッチファイル側  cd /D c:\  C:\***.vbs  exit /B VBS側 'エクセル起動  Set WshShell = CreateObject("WScript.Shell")  WshShell.CurrentDirectory = "C:\***"  WshShell.Run "C:\***\***.xls",3  WScript.Sleep(5000)  WshShell.SendKeys("E") '←マクロを有効にする  WScript.Sleep(5000)  WshShell.SendKeys("U") '←データソースへのリンクを更新 エクセル側(マクロ)  Sub Auto_open()   Application.OnTime TimeValue("13:00:00"), "Action"  End Sub  Sub Action()    ・・・(省略)・・・  End Sub ----------------------------- また、エクセルマクロは、VBSではなく手動で立ち上げますと、 問題なく時間になった時(13時)に作動します。 VBSのRunメソッドが、 エクセルマクロの Application.OnTime を待たずに走ってしまうことで、 エクセルマクロが無効になってしまっているのではないか? もしくは、データ更新のための sendkey("U")によって マクロが無効になってしまっているのはないか? と思っています。 恐れ入りますが、 よろしくアドバイスの程お願いします。

専門家に質問してみよう