VBScript(WHS)でWMIを使ってリモートでvbsファイルを実行したい
サーバAから、サーバBに置いてあるvbsファイル(Apache停止が書かれている)を実行して、サーバBのApacheを停止したいのですが、うまくいきません。
サーバBで単体でそのvbsファイルを実行すると、Apacheは正常に停止します。
戻り値は、0(プロセス完了)が帰ってきていて、接続はうまくいっているようなのですが、vbsファイルが実行されていないようです。
非常に困っておりまして、どなたか教えていただけないでしょうか?
vbsファイルの実行のところが間違っているのかなと思うのですが・・・(今まだ会社にいないので、会社でのソースそのままではないですが、同じような感じです)
--------------------------------------------
Option Explicit
Dim strComputer
Dim strUser
Dim strPassword
Dim strBAT
' -----------------------------------
' 環境設定
' -----------------------------------
strComputer = "サーバーB"
strUser = "username"
strPassword = "password"
strBAT = "c:\hoge.bat"
' -----------------------------------
' コマンド実行
' -----------------------------------
Dim objWbemLocator
Dim objWMIService
Dim objWin32_Process
Dim errReturn
Dim intProcessID
Const WbemAuthenticationLevelPktPrivacy = 6
' リモートに接続
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objwbemLocator.ConnectServer _
(strComputer, "root\cimv2", strUser, strPassword)
objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy
' Win32_Process クラスを生成
Set objWin32_Process = objWMIService.Get("Win32_Process")
errReturn = objWin32_Process.Create _
("cmd.exe /cscript C:\tmp\ApacheStop.vbs", Null, Null, intProcessID)
WScript.Quit(errReturn )
もともとの要件は、機能ごとに分けたvbsファイル(Apache停止、Windows再起動、ファイルバックアップなど)を、各サーバで実行するというものです。その制御は、ひとつのバックアップサーバーで行います。