VBScript将远程exe输出重定向到本地系统

时间:2014-03-12 08:50:43

标签: redirect vbscript cmd remote-server wbem

我正在使用vbscript在远程系统上运行exe。首先我连接到远程系统。

Set objSWbemServices = objSWbemLocator.ConnectServer _
    (strComputer, "root\cimv2", _
    strUser, strPassword)

然后我在远程系统上创建一个进程。

Set Process = objSWbemServices.Get("Win32_Process")
result = Process.Create("cmd /C ""cd " & somedir & " && " & "Collector.exe -v", , , intProcessID)

现在这段代码工作正常。 然而,exe在控制台上提供了一些输出,我想将其重定向到本地系统上的文件

我尝试了以下选项

result = Process.Create("cmd &1>abc.txt /C ""cd " & somedir & " && " & "Collector.exe -v", , , intProcessID)

虽然上述选项根本不起作用,

result = Process.Create("cmd /C ""cd " & somedir & " && " & "Collector.exe -v > abc.txt", , , intProcessID)

此代码在远程系统中创建了该文件。但是,我希望在本地系统中创建文件,从我运行我的vbscript。任何帮助?

1 个答案:

答案 0 :(得分:1)

您可以尝试将输出重定向到UNC路径:

Set net = CreateObject("WScript.Network")

result = Process.Create("cmd /C ""cd " & somedir & " && " _
         & "Collector.exe -v > \\" & net.ComputerName & "\share\abc.txt" _
         , , , intProcessID)

共享必须存在于本地计算机上,并且必须授予运行远程进程的用户对其的写访问权。

但是,未经测试,所以我不确定它是否会起作用。