首页 > 解决方案 > Powershell - 检查 Azure AD 来宾是否已存在

问题描述

我们有一个 Powershell 脚本,可以批量邀请来宾加入 Azure AD。电子邮件地址包含在 CSV 文件中。

一切正常,但我想添加功能来检查租户中是否已经存在用户,这样他们就不会收到第二次邀请(看来您可以继续邀请已经存在或已邀请的客人)。

对于像bob@company.com,的普通用户

$email = "bob@company.com"

我可以简单地使用这个:

Get-AzureADUser -ObjectId "$email"

当然,客人的格式为john_gmail.com#EXT#tenant.onmicrosoft.com. 使用ObjectID它确实可以正常工作,但当然在 CSV 中我们会看到john@gmail.com,因此它无法查找用户。

在进行此查找时是否有一些明智的方法可以转换john@email.comjohn_gmail.com#EXT#tenant.onmicrosoft.com当它实际邀请他们时,它需要在脚本后面被视为一个普通的电子邮件地址。

谢谢

标签: azurepowershellazure-active-directory

解决方案


鉴于$email = "john@email.com"您可以像这样搜索"john_gmail.com#EXT#tenant.onmicrosoft.com"

Get-AzureADUser -ObjectId "$($email -replace "@", "_")#EXT#@tenant.onmicrosoft.com"

或者

Get-AzureADUser -ObjectId ($email.Replace("@","_") + "#EXT#@tenant.onmicrosoft.com")

这不会更改$emailwhile 您仍然可以搜索扩展项的值。


推荐阅读