Интерактивный режим PSExec не работает для консольного приложения

Я пытаюсь использовать PSExec для запуска консольного приложения на удаленном компьютере в интерактивном состоянии. Когда я запускаю что-то вроде этого:

PsExec.exe -s -d -i 1 \\MyServer notepad.exe

Он запускает Блокнот просто отлично. Если я тогда запустите это:

PsExec.exe -s -d -i 1 \\MyServer C:\Temp\MyConsoleApp.exe

Он запускает командные окна, но, насколько я могу судить, ничего не делает. Например, когда я запускаю консольное приложение локально, оно отображает "пульс" каждые 5 секунд, но когда я запускаю его удаленно, в командном окне ничего не отображается..Exe действительно отображается как процесс в диспетчере задач. Есть идеи?

4 ответа

Решение

Я думаю, что вы должны установить рабочий каталог с -w:

PsExec.exe -s -d -i 1 -w c:\temp \\MyServer MyConsoleApp.exe

http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

Если окно не появляется, возможно, идентификатор сеанса при вызове psexec неправильный.

Это число устанавливается после флага -d.

Нужный идентификационный номер появится в столбце «ID» списка на вкладке «Пользователи» в Taskmgr.exe. Обычно это 1, но может и не быть. И пропуск номера также может привести к тому, что окно не появится.

например, я побежал:

      psexec -i -d -s c:\windows\regedit.exe

(как советовали в другом месте), и хотя я получил сообщение: «... regedit.exe запущен ... с идентификатором процесса ...», окно не появилось, хотя в Taskmgr.exe я видел, что он запущен с указанный идентификатор процесса.

Однако, когда я побежал:

      psexec -s -d -i 1 regedit.exe

Окно действительно появилось. Так получилось, что мой ID был 1.

Я думаю, что вы можете посмотреть идентификатор сессии для вашего текущего пользователя и передать его в качестве параметра с -i Например:

PsExec.exe -s -d **-i 2** -w c:\temp \\MyServer MyConsoleApp.exe

Чтобы посмотреть правильный идентификатор сеанса, вы можете открыть cmd и запустить команду: query session Иногда идентификатор сеанса равен 2 для активного пользователя, для которого вы хотите запустить процесс, поэтому попробуйте найти правильный идентификатор сеанса и использовать его с -i patameter. Он должен работать. Это сработало для меня.

Чтобы найти идентификатор сеанса пользователя, откройте диспетчер задач на этом компьютере и найдите свое имя пользователя, вошедшего в систему, на вкладке "Пользователи".

Другие вопросы по тегам