2014-03-12 4 views
0

vbscript를 사용하여 원격 시스템에서 exe를 실행하고 있습니다. 먼저 원격 시스템에 연결합니다.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

당신은 UNC 경로로 출력을 리디렉션 시도 할 수 :

Set net = CreateObject("WScript.Network") 

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

비중은 로컬 컴퓨터에 존재해야하며 원격 프로세스를 실행하는 사용자가 쓰기 권한을 부여해야합니다.

그러나 테스트되지 않았으므로 제대로 작동하는지 확신 할 수 없습니다.