Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

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

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

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