スクリプトをリモートで実行する

WSH 5.6 では、リモート システム上のスクリプトを実行できます。次のスクリプトは、この機能の使用例を示しています。 これらのスクリプトでは、ファイルはローカル マシン上の "c:\wsh5.6" というディレクトリ内に格納されていることを前提としています。ローカル パスとリモート マシン名は必要に応じて変更してください。

ローカル マシン上で RemoteTest.WSF を実行した後、DCOM によるユーザーの ID 確認処理が実行される間、実行が一時停止されます。"Done" というメッセージが表示されると、リモート マシン上の "c:\beenhere.txt" というファイルを参照して、コマンドの実行時刻 (リモート コンピュータのシステム時計を基準にした時刻) を確認できます。

    // JScript.
    RemoteTest.WSF
    ------------------------------- 
    <package>
    <job>
    <script language="JScript">
    var oController = new ActiveXObject("WSHController");
    var oProcess = oController.CreateScript("c:\\wsh5.6\\beenhere.wsf", "remmachine");
    oProcess.Execute();
    while (oProcess.Status != 2) WScript.Sleep(100);
    WScript.Echo("Done"); 
    </script>
    </job>
    </package>
    ------------------------------- 
    BeenHere.WSF
    ------------------------------- 
    <package>
    <job>
    <script language="JScript">
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var fout = fso.CreateTextFile("c:\\beenhere.txt", true);
    fout.WriteLine(new Date);
    fout.Close();
    </script>
    </job>
    </package>
    ------------------------------- 
    
    ' VBScript.
    RemoteTest.WSF
    ------------------------------- 
    <package>
    <job>
    <script language="VBScript">
    set oController = CreateObject("WSHController")
    set oProcess = oController.CreateScript("c:\wsh5.6\beenhere.wsf", "remmachine")
    oProcess.Execute
    While oProcess.Status <> 2
       WScript.Sleep 100
    WEnd
    WScript.Echo "Done"
    </script>
    </job>
    </package>
    ------------------------------- 
    
    BeenHere.WSF
    ------------------------------- 
    <package>
    <job>
    <script language="VBScript">
    set fso = CreateObject("Scripting.FileSystemObject")
    set fout = fso.CreateTextFile("c:\beenhere.txt", true)
    fout.WriteLine Now
    fout.Close
    </script>
    </job>
    </package>

参照

基本的な Windows Script Host タスク | リモート WSH をセットアップする | WshRemote オブジェクト