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

时间:2018-08-15 10:41:09

标签: powershell azure-active-directory intune

我正在尝试回答我希望这是一个简单的问题。我有一个注册了AzureAD并自动驾驶的设备。我想使用IntuneManagementExtenstion来获取当前登录以在脚本的其他地方使用的用户的FULL用户名。我看不到这样做的方法。

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

租户是 mytestdomain.onmicrosoft.com 用户是 mytestuser@mytestdomain.com

大多数方法(如果您只是谷歌或搜索stackoverflow)将返回:

AzureAD \ mytestuser 要么 mytestuser

我需要一个可以返回完整的 mytestuser@mytestdomain.com 的人。这是因为租户有多个虚名,所以我需要确定哪个虚名(例如, mytestuser@mytestdomain.com 是与 mytestuser@mytestdomain2.com 不同的用户帐户) strong>或 mytestuser@mytestdomain3.com )。因此,我不能只将租户名称附加在其他方法的输出末尾。

任何想法都值得赞赏。要求安装msol / azuread模块的方法似乎不起作用,因为它们要求用户登录,这使问题不成立,并且由于它由intune管理扩展运行,因此用户无论如何都无法进行交互。

谢谢

2 个答案:

答案 0 :(得分:0)

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

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

whoami.exe /UPN

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

答案 1 :(得分: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{''})