Почему PSEXEC -i -s работает в Windows 7, поскольку сервисы больше не могут взаимодействовать с рабочим столом?

544
slashp

Согласно этой статье MSDN :

Важные службы не могут напрямую взаимодействовать с пользователем начиная с Windows Vista. Поэтому методы, упомянутые в разделе «Использование интерактивного сервиса», не должны использоваться в новом коде.

Почему на psexec \\REMOTEPCNAME -i -s cmdсамом деле все еще работает правильно и запускает командную строку в NT AUTHORITY\SYSTEMконтексте? Есть ли у SysInternals чит-коды для Windows?

1
* Есть ли у SysInternals чит-коды Windows? * - Да, это программное обеспечение Microsoft. Ramhound 9 лет назад 2

1 ответ на вопрос

1
grawity

Служба psexec имеет достаточные привилегии (SeTcbPrivilege) для получения токенов для других сеансов с WTSQueryUserToken (которые затем передаются CreateProcessAsUser или чему-либо подобному).

Смотрите также: http://www.remkoweijnen.nl/blog/2007/10/20/how-to-launch-a-process-in-a-terminal-session/