не работает PSExec из Java - PullRequest
       25

не работает PSExec из Java

2 голосов
/ 30 декабря 2011

Я хочу запустить процесс CSharp с моего сервера Java под другим пользователем. Для этого я использую PSExec - он отлично работает на моем ПК, но при работе на «реальном» сервере процесс сразу падает. (Кажется, что приложение CSharp даже не запускается - я попытался напечатать что-то в файл в качестве первой команды, но ничего не было написано).

Как пользователь, который запускает процесс Java, так и другой пользователь находятся в группе администраторов.

Понятия не имею, почему происходит сбой приложения.

Это мой код:

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

processBuilder.start();

Ответы [ 3 ]

1 голос
/ 30 декабря 2011

попробуй с XCmd Золтаном Чизмадией: http://feldkir.ch/xcmd.htm

Эта проблема обсуждалась на форуме sysinternals, и, насколько я помню, была проблема с символом EOL, который использует psexec.

У вас не будет проблем с xcmd

0 голосов
/ 14 марта 2014

Работает просто отлично.Помните, что вам нужно иметь двойной \\ в вашей 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();
0 голосов
/ 30 мая 2013

Мой антивирусный сканер не поддерживает xcmd.

Однако paexec - это замена psexec, которая также отлично работает.

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

...