获取 Windows 系统已加入 Azure AD 时登录用户的 UserPrincipalName
Get UserPrincipalName of logged-on user when windows system has joined into Azure AD
尝试获取 Windows 10 上登录用户的 UPN(用户主体名称((以及 Windows 2012 R2 上的所有登录用户(系统加入 Azure AD。
在我的基于 Win32 本机服务的应用程序中TranslateNameW
API (https://learn.microsoft.com/en-us/windows/desktop/api/secext/nf-secext-translatenamew( 用于获取登录用户的 UPN。它在加入本地 AD 的系统上运行良好。
wchar_t user_sam[512] = { 0 };
wchar_t user_upn[1024] = { 0 };
DWORD len = sizeof(user_upn);
swprintf_s(user_sam, L"%ws\%ws", L"AAD", L"naga");
BOOL got_upn = TranslateNameW(user_sam, NameSamCompatible, NameUserPrincipal, user_upn, &len);
if (! got_upn)
wprintf(L"Failed to get user upn for %ws: %ld", user_sam, GetLastError());
此 API 在加入 Azure AD 的系统上失败,>错误 指定的域不存在或无法联系。
您可以将
GetUserNameEx
与NameUserPrincipal
一起使用。这是一个工作示例:
wchar_t user_upn[1024] = { 0 };
DWORD len = sizeof(user_upn);
if (GetUserNameExW(NameUserPrincipal, user_upn, &len))
{
std::wcout << "Username=" << user_upn << std::endl;
}
实际上,当您使用/UPN
作为参数时,此函数是whoami
命令执行的函数。
相关文章:
- 如何在 c++ 中将密码和用户名保存到 .txt 文件中.如果用户尝试登录,我仍然希望能够检索它们
- Win7 C++ - 从以用户身份登录的服务启动可执行文件的问题
- 用户注销/登录后,创建托盘图标时出现罕见错误
- 是否有任何 C 函数或 API 来获取当前登录用户下运行的进程列表
- 如何从 Windows 上的服务在未登录用户的桌面上启动应用程序
- 获取 Windows 系统已加入 Azure AD 时登录用户的 UserPrincipalName
- 加密用户数据,而不会丢失安卓应用程序中的登录用户
- 如何检查用户登录到Windows的时间
- 嗨,我正在尝试编码一个允许用户在Visual C 中登录的按钮,程序正在运行,但表单对话框未显示
- 如何从非管理员用户获取当前登录的用户名、域名和用户 sid
- 我如何将登录的用户登录到当前会话中的域用户
- 从 mfc 应用程序点击网络服务,并希望从网络服务登录方法读取用户代码返回
- 如何从另一个登录用户启动登录用户内部的应用程序
- 在多个登录用户系统中检索当前登录的用户 SID
- 如何获取当前登录用户的UPN(用户主体名称)
- 登录用户:程序意外完成
- 是否可以创建一个服务或应用程序,以编程方式在windows中登录用户
- 如何在Windows中获得当前登录用户的域
- 如何在 Windows 中获取登录用户的 SID
- 如果使用system用户令牌启动登录用户进程,是否会危及系统安全