我试图通过在命令中传递我的电子邮件ID来在PowerShell中执行以下命令,但它不会返回任何内容。
$objectid = (Get-AzureRmADUser -Mail "<your email id>").Id
有其他解决方法吗?
答案 0 :(得分:2)
我刚刚在自己的租户上进行了测试,效果很好。
唯一不起作用的情况是,当邮件与任何有效的邮件地址都不匹配时,我什么也没返回。
首先要确保没有遇到错误,请确保已更新AzureRM模块
Update-Module AzureRM
否则,我建议您尝试使用UserPrincipalName作为测试,以查看是否可以使用UserPrincipalName作为标识符来进行测试。
我的意思是,仍然使用-Mail
属性,但是对于该值,请使用用户UserPrincipalName而不是电子邮件地址。
还要确保您要查找的电子邮件地址不是别名,大多数这些命令仅适用于在“邮件”字段中输入的任何“主要邮件地址”属性,而不适用于任何代理地址。
对于其他解决方案,如果AzureRM模块对您不起作用,则可以尝试使用AzureAD模块
Install-Module AzureAD
此模块具有Get-AzureADUser
cmdlet,该cmdlet还可以提供Azure AD用户的对象ID。
要从Get-AzureADUser
cmdlet中基于Mail查找用户,请使用-Filter
属性。
Get-AzureADUser -Filter "Mail eq 'mail@domain.tld'"
如果这不起作用。尝试仅运行(Get-AzureADUser).mail
以获得所有邮件地址的列表,并验证您希望查找的邮件确实在列表中,只是确保100%确保您希望查找的邮件确实是一个值。在用户对象上。