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

Используйте winexe для запуска процесса Windows

Когда я в Windows, я использую PsExec для запуска процессов на других машинах Windows. Теперь у меня есть случай, когда я хочу сделать это на машине Linux.

К счастью, есть Winexe, небольшая программа, которая должна работать как PsExec, только для Linux-World. У меня нет проблем с его установкой, и я могу запускать такие процессы, как cmd.exe.

Проблема в том, что я не могу запустить процесс, который виден пользователю Windows. Если я запускаю calc.exe, я вижу, что он запускается в диспетчере задач, но графического интерфейса нет.

Вопрос:
Как можно запустить процессы, которые фактически видны на машине Windows?

Как можно запустить процессы, которые действительно видны на машине Windows?

Хорошим началом было бы создание процесса в сеансе текущего вошедшего в систему пользователя. Обычно это сеанс 1, если в систему вошел только один человек. Если в систему вошли несколько человек, это может быть сеанс 2, 3 или 27. Вам нужно сначала запустить код в wtsapi32.dll, чтобы определить, кто был подключен к какой сессии. В современных версиях Windows сеанс 0 зарезервирован для служб и системных функций.

Вы запускаете процесс в сеансе 0, поэтому его никто не видит.

psexec может запустить удаленный процесс и позволить вам выбрать другой сеанс для его запуска, но я не знаю ни одного эквивалента для Linux. Я просмотрел справочную страницу по winexe, и похоже, что у нее нет такой опции.

редактировать: Официальная позиция Microsoft заключается в том, что запуск интерактивных процессов удаленно - слишком большая угроза безопасности, и поэтому они ограничивают вашу способность делать это ... но мы все еще можем обойти это, если мы хотим испачкаться:

schtasks.exe /create /S COMPUTERNAME /RU "NT AUTHORITY\SYSTEM" /RL HIGHEST /SC ONSTART /TN "RemoteProcess" /TR "program.exe \"argument 1\" \"argument 2\""

schtasks.exe /Run /S COMPUTERNAME /I /TN "RemoteProcess"

schtasks.exe /Delete /S COMPUTERNAME /TN "RemoteProcess"