Операционная система - Windows 7 или выше с включенным UAC. У процесса вызова есть права администратора, уже подтвержденные полем UAC.
Я хочу создать новое окно консоли (cmd.exe) под пользователем SYSTEM (не спрашивайте почему). Я могу сделать это в интерактивном режиме, используя инструмент PsExec от Sysinternals или что-то подобное, но у меня нет исходного кода, и мне нужно понимать, как это работает.
Я понимаю, что мне нужно вызвать CreateProcessAsUser (), и это нормально работает с первым параметром (hToken), установленным в NULL, но теперь мне нужно знать, как получить hToken. Я понимаю, что могу получить такой токен, вызвав LogonUser (), но не для SYSTEM. Как мне получить токен для SYSTEM?
Я думал об использовании DuplicateTokenEx (), но для этого требуется оригинальный токен, которого у меня нет.
Придется ли мне запросить список процессов, найти какой-либо процесс SYSTEM и попытаться дублировать этот токен или что-то в этом роде? Я не хочу реконструировать инструмент PsExec или какой-либо другой инструмент, делающий именно это.