2

我想在不同的用户下从我的 java 服务器运行 CSharp 进程。我使用 PSExec 来执行此操作 - 它在我的 PC 上运行良好,但在“真实”服务器上执行此操作时,进程立即崩溃。(似乎 CSharp 应用程序甚至没有启动 - 我尝试将某些内容作为第一个命令打印到文件中,但没有写入任何内容)。

运行 java 进程的用户和其他用户都在管理员组中。

我不知道为什么应用程序崩溃。

这是我的代码:

ProcessBuilder processBuilder = new ProcessBuilder(
 "c:\\pstools\\PsExec.exe",
 "-u",
 "username",
 "-p",
 "password",
 appPath,
 arg1,
 arg2);

processBuilder.start();
4

3 回答 3

1

尝试使用 Zoltan Csizmadia 的 XCmd:http: //feldkir.ch/xcmd.htm

这个问题已在 sysinternals 论坛上讨论过,我记得 psexec 使用的 EOL 符号存在问题。

使用 xcmd 不会有任何问题

于 2011-12-30T17:43:03.793 回答
0

它工作得很好。请记住,您的 ShellCommandString 中需要有双 \\。我的同事刚刚带着这个问题来找我,我用谷歌搜索了它并进入了这个页面.. processBuilder 会工作得很好,确保你拥有的搅拌器 = 你希望在 cmd 中拥有的搅拌器

ProcessBuilder processBuilder = new ProcessBuilder(
    "Psexec \\\\\\\\10.192.246.76 -i -u Administrator -p admin2193 cmd /c C:\\\\CI\\\\AutoTest\\\\agent_test1.bat");

processBuilder.start();
于 2014-03-14T19:17:31.347 回答
0

我的病毒扫描程序不允许 xcmd。

但是 paexec 是 psexec 的替代品,也可以完美运行。

http://www.poweradmin.com/PAExec/

于 2013-05-30T07:39:08.060 回答