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

时间:2013-12-03 13:50:37

标签: c++ windows active-directory sid upn

在我之前的question的上下文中,我试图在C ++中获取当前登录的Windows Active directoy用户的UPN。 我知道如何获取登录用户的SID但无法获取登录用户的UPN。

1 个答案:

答案 0 :(得分:0)

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

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