
Согласно этомуСтатья MSDN:
Важно Службы не могут напрямую взаимодействовать с пользователем, начиная с Windows Vista. Поэтому методы, упомянутые в разделе «Использование интерактивной службы», не следует использовать в новом коде.
Почему psexec \\REMOTEPCNAME -i -s cmd
все еще работает правильно и запускает командную строку в NT AUTHORITY\SYSTEM
контексте? Имеет ли SysInternals чит-коды Windows?
решение1
Служба psexec имеет достаточные привилегии (SeTcbPrivilege) для получения токенов для других сеансов сWTSQueryUserToken(который он затем даетCreateProcessAsUserили что-то подобное).
Смотрите также:http://www.remkoweijnen.nl/blog/2007/10/20/как-запустить-процесс-в-терминальной-сессии/