Как получить UPN (имя участника-пользователя) от текущего вошедшего в систему пользователя?
В контексте моего предыдущего вопроса я пытаюсь получить UPN текущего зарегистрированного пользователя Windows Active directoy в C++. Я знаю, как получить SID вошедшего в систему пользователя, но не могу получить UPN вошедшего в систему пользователя.
1 ответ
Предполагая, что вы работаете как сервер (с высокими привилегиями) в отношении клиентской программы, вы можете выдать себя за пользователя с помощью API олицетворения Windows, а затем вызвать GetUserNameExW с NameUserPrincipal в качестве формата имени. Сложной частью здесь может быть олицетворение, в зависимости от того, с чем вам приходится работать.
Если у вас есть только SID и олицетворение не является опцией, вы можете использовать WMI или LDAP и запросить у DC: поиск объекта пользователя с соответствующим SID и получить атрибут UserPrincipalName. Опять же, вам понадобятся достаточные разрешения для этого.