スクリプトをリモートで実行する
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 オブジェクト