2014-02-12 1 views
1

PsExec.exe을 사용하는 원격 컴퓨터에 연결하려고합니다.이 컴퓨터에서 일부 작업을 수행하고 싶습니다. 일반적으로 원격 컴퓨터에 요청을 보냈지 만 제대로 작동하지만 완료된 후에는 아무 것도 반환하지 않지만 정상적으로 처리되어야합니다. 나는 생각했다 PsExec.exe 그것이 아무것도 반환 할 수없는 이유가있다. 여기 Java에서 PsExec.exe 사용

내가 사용하는 자바 코드 :

 Process p = Runtime.getRuntime().exec(command); 
     InputStream stderr = p.getErrorStream(); 
     InputStreamReader isr = new InputStreamReader(stderr); 
     BufferedReader br = new BufferedReader(isr); 
     String line = null; 
     while ((line = br.readLine()) != null) 
      System.out.println(line); 
     int exitVal = p.waitFor(); 
     System.out.println("Process exitValue: " + exitVal); 

및 명령은 다음과 같습니다

문자열 명령 = "cmd를 /cc:\PSTools\PsExec.exe \\"+ availableHost .getHostName() + "java -cp c : \ sahi \ lib \ ant-sahi.jar net.sf.sahi.test.TestRunner -test"+ waitingTestSet.getPath() + "-browserType" + waitingTestSet.getBrowserType() + "-baseURL"+ waitingTestSet.getUrl() + "-host localhost -port 9999- 스레드" + + waitTestSet.getTestSet() + "-u"availableHost.getuName() + "-p"+ availableHost.getuPass() + "-conStr"+ connectionString;

답변

2

사용 :

cmd /c c:\PSTools\PsExec.exe 

당신이 차례로 PsExec.exe이 출시 cmd.exe 프로세스를 시작하게됩니다. 당신은 "오,하지만 내가 원하는 것"이라고 생각할 수도 있지만 그렇지는 않습니다. 유일한 작업이 PsExec.exe 프로세스를 시작했기 때문에

/C  Run Command and then terminate 

을 그래서 바로하여 PsExec.exe 프로세스가 cmd.exe에서 시작됩니다 후 cmd.exe 프로세스가 완료 :

실제로 cmd로 사용하는 플래그는이 다음을 수행 종료하십시오. 따라서 Java 관점에서 모든 것이 완료됩니다.

PsExex.exe을 직접 실행 해보고 원하는 결과가 나오는지 확인하십시오.

+0

다시, psexec를 종료하지 않았습니다 !! – mustafa

+0

'command' 문자열을 출력하고 명령 프롬프트에서 실행하십시오. 무슨 일이야? – Welsh

+0

잘못한 것이 작동 했습니까? – mustafa