Получить UserToken из Logon ID (LUID) (C ++) - PullRequest
1 голос
/ 26 декабря 2010

Я пытаюсь лучше понять, как работают сессии Windows, поэтому, если у меня возникнут странные ошибки в этом вопросе, пожалуйста, дайте мне знать.

Я использую LsaEnumerateLogonSessions(), чтобы получить все зарегистрированные сеансы в системе. Теперь у меня есть LUID, представляющий вход в систему, и, если я правильно понимаю, он представляет пользователя, который вошел в систему, или пользователя, который его собирает, например SYSTEM.

Теперь, если пользователь X запускает процесс, Windows предоставляет этому процессу токен, представляющий X.

Есть ли способ (в службе Windows) получить токен пользователя из LUID? Я знаю, что могу получить его из процесса HANDLE, но это не то, что я хочу.

1 Ответ

3 голосов
/ 26 декабря 2010

Вы можете использовать LsaGetLogonSessionData, чтобы получить идентификатор сеанса, а затем использовать WTSQueryUserToken, чтобы получить токен из этого.Обратите внимание, что вам может потребоваться запустить как LocalSystem для WTSQueryUserToken (см. « Как мне получить токен текущего пользователя для физического сеанса? » относительно этого).

...