[リモートのスクリプトの状態を監視する]
リモートコンピュータ上で、スクリプトファイルを実行し、開始,エラー,終了の状態を取得します。
リモートでスクリプトを起動するには『HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings』に『Remote』という文字列値を値『1』で作成する必要があります。
悪用される可能性もありますので、公開サーバーには設定しない方が良いと思います。
【ソースコード】
[tips0095.vbs]
Option Explicit
On Error Resume Next
Dim objWshCtrl
Dim strRemotePC
Dim strScript
Dim objExecCmd
Set objWshCtrl = WScript.CreateObject("WshController")
If Err.Number = 0 Then
strRemotePC = "Comp01"
strScript = "rmt_test.vbs"
Set objExecCmd = objWshCtrl.CreateScript(strScript, strRemotePC)
WScript.ConnectObject objExecCmd, "Remote_"
WScript.Echo strRemotePC & " で " & strScript & " を実行します。"
objExecCmd.Execute
Do While objExecCmd.Status = 1
WScript.Sleep(1000)
Loop
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objExecCmd = Nothing
Set objWshCtrl = Nothing
Sub Remote_Start
WScript.Echo "リモートでスクリプトを開始しました。"
End Sub
Sub Remote_Error
WScript.Echo "リモートのスクリプトでエラーが発生しました。"
End Sub
Sub Remote_End
WScript.Echo "リモートのスクリプトが終了しました。"
End Sub
[rmt_test.vbs]
Option Explicit
Dim objFSO
Dim objFile
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\test.txt", 8, True)
objFile.WriteLine Now()
objFile.Close
Set objFile = Nothing
Set objFSO = Nothing
【実行結果】
C:\> cscript //NoLogo tips0095.vbs
Comp01 で rmt_test.vbs を実行します。
リモートでスクリプトを開始しました。
リモートのスクリプトが終了しました。