Powershell-检查Azure AD来宾是否已存在

时间:2018-08-21 09:55:04

标签: azure powershell azure-active-directory

我们有一个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.com转换为john_gmail.com#EXT#tenant.onmicrosoft.com?实际在邀请他们时,需要在脚本后面将其视为普通的电子邮件地址。

谢谢

2 个答案:

答案 0 :(得分:0)

鉴于$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")

尽管您仍然可以搜索扩展的术语,但这不会更改$email的值。

答案 1 :(得分:0)

我意识到我可以使用

$email -replace "@", "_"

要获得我想要的输出。我将复制该变量,以避免引起问题或稍后在脚本中将其还原。