gpt4 book ai didi

java - 在java中使用PsExec.exe

转载 作者:行者123 更新时间:2023-11-30 04:02:09 24 4
gpt4 key购买 nike

我尝试使用PsExec.exe连接远程计算机,并且我想对此计算机执行一些操作。通常我将请求发送到远程计算机,它工作正常,但完成后,它不会返回任何内容,但应该是正常的。我认为 PsExec.exe 挂起,这就是它无法返回任何内容的原因。

这是我使用的java代码:

        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);

命令是:

String command = "cmd /c c:\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 -threads " + waitingTestSet.getThread() + " -useSingleSession false -tSetId " + waitingTestSet.getTestSetID() + " -u " + availableHost.getuName() + " -p " + availableHost.getuPass() + " -conStr " + connectionString;

最佳答案

使用:

cmd /c c:\PSTools\PsExec.exe

将导致您启动 cmd.exe 进程,该进程又启动 PsExec.exe。您可能会想“哦,但这就是我想要的”,但事实并非如此。

cmd一起使用的标志实际上执行以下操作:

 /C     Run Command and then terminate

因此,在 PsExec.exe 进程从 cmd.exe 启动后,cmd.exe 进程立即结束,因为它的唯一的工作是启动 PsExec.exe 进程并终止。因此,从 Java 的角度来看,一切都已完成。

只需尝试直接运行 PsExex.exe 并查看是否返回您想要的输出。

关于java - 在java中使用PsExec.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21720296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com