Интерактивный режим 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. Он должен работать. Это сработало для меня.
Чтобы найти идентификатор сеанса пользователя, откройте диспетчер задач на этом компьютере и найдите свое имя пользователя, вошедшего в систему, на вкладке "Пользователи".