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

запустить exe в удаленном сеансе с PsExec

Я хочу запустить приложение удаленно. Я использую следующую команду PsExec:

PsExec \\computerOne -u Domain\User1 -p 123456 -x "C:\Windows\System32\calc.exe"

Я пробовал использовать -i, чтобы программа взаимодействовала с рабочим столом:

PsExec \\computerOne -u Domain\User1 -i 123456 -x "C:\Windows\System32\calc.exe"

но это не работает. Ошибка из второго примера:

calc.exe вышел на computerOne с кодом ошибки -1073741502 "

Если я опущу спецификацию и просто напишу путь к exe, процесс будет указан в диспетчере задач, но я не вижу никакого пользовательского интерфейса. Должен ли я изменить какие-либо настройки на моем рабочем столе, на котором я хочу запустить программу?

То, что вы видите, может быть следствием Изоляция сеанса 0 - psexec устанавливает и запускает новую службу на удаленном компьютере, но сеанс по умолчанию, в котором он запускает ваш процесс, равен 0 и, следовательно, недоступен для текущего пользователя (по крайней мере, из Windows Vista / Server 2008). Вам необходимо указать номер сеанса после -i параметр. Вы можете запросить текущих пользователей (и их номера сеансов), используя quser /SERVER:computerOne команда заранее.

Для быстрого и грязного тестирования вы можете предположить, что идентификатор сеанса первого интерактивно вошедшего в систему пользователя равен «1».

Вы также можете просто вынуть -x и заменить на -I, он должен открыть PsExec \ computerOne -u Domain \ User1 -p 123456 -i "C: \ Windows \ System32 \ calc.exe"

Основная причина, по-видимому, в протекающих ручках, сделанных Console.Write метод в Microsoft.powershell.consolehost.dll. -1073741502 код выхода в шестнадцатеричном формате: 0xC0000142 (status_dll_init_failed).

Это похоже на Windows 7 и 2008 (в соответствии с Microsoft KB2701373).

Примечание: Некоторые «Исправления» в другом месте в Интернете приписываются выполнению какого-то магического заклинания, затем закрытию PowerShell и открытию нового экземпляра. Однако «перезапуск» PowerShell - это то, что на самом деле временно решает проблему.