如何获取当前登录用户的UPN(用户主体名称)



在我前面的问题中,我试图在C++中获取当前登录的Windows Active directoy用户的UPN。我知道如何获取已登录用户的SID,但无法获取已登录的用户的UPN。

假设您作为服务器(具有高权限)针对客户端程序工作,则可以使用Windows模拟API模拟用户,然后使用NameUserPrincipal作为名称格式调用GetUserNameExW。这里棘手的部分可能是模仿,这取决于你必须使用什么。

如果您只有SID,而模拟不是一个选项,则可以使用WMI或LDAP查询DC:搜索具有匹配SID的用户实体并获取UserPrincipalName属性。同样,您需要足够的权限才能执行此操作。

最新更新