获取本地用户的完整 Azure AD 用户 ID

问题描述 投票:0回答:3

我正在尝试回答一个我希望是简单的问题。我有一台在 AzureAD 中注册并自动驾驶的设备。使用 IntuneManagementExtenstion 我想获取当前登录用户的完整用户名,以便在脚本中的其他位置使用。我看不出有什么办法可以做到这一点。

我能找到的所有示例都返回短名称或 AzureAD 域和用户名,例如:

租户是 mytestdomain.onmicrosoft.com 用户是 [电子邮件受保护]

如果你只是谷歌或搜索 stackoverflow,大多数方法都会返回:

AzureAD\mytestuser 或者 我的测试用户

我需要一个返回完整的[电子邮件受保护]。这是因为租户有多个个性化名称,因此我需要确定登录的是哪一个(例如 [电子邮件受保护][电子邮件受保护][电子邮件受保护]是不同的用户帐户])。因此,我不能只将我的租户名称附加在其他方法的输出末尾。

任何想法表示赞赏。需要安装 msol/azuread 模块的方法似乎不起作用,因为它们需要用户登录,这违背了要点,并且由于它是由 intune 管理扩展运行的,因此用户无论如何都无法交互。

谢谢

powershell azure-active-directory intune
3个回答
1
投票

我现在有点忙测试这个,但它应该可以解决问题。

您可以让 Intune 运行 Powershell 脚本。此命令将以您描述的格式返回完整的用户帐户名称。

whoami.exe /UPN

既然您已经声明您想要已经登录的用户。在 Intune 中配置设置时,请确保选择“使用登录凭据运行此脚本”选项。


0
投票

此行将从注册表中的域加入信息返回 UPN。 必须以管理员权限运行

[string]$($1='Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CloudDomainJoin\JoinInfo\';if(Test-Path -Path $1){(Get-ItemProperty -Path ('{0}\{1}' -f ($1,(Get-ChildItem -Path $1).Name.Split('\')[-1])) -Name 'UserEmail' | Select-Object -ExpandProperty 'UserEmail')}else{''})

0
投票

Get-ItemPropertyValue (((Get-Item "HKLM:/SYSTEM/CurrentControlSet/Control/CloudDomainJoin/JoinInfo/*").Name).Replace('HKEY_LOCAL_MACHINE','HKLM:')) TenantId,UserEmail

无需管理员权限。

© www.soinside.com 2019 - 2024. All rights reserved.