从 ProxyAddresses 中筛选出“.onmicrosoft.com”地址 - Get-AzureADUser

Filtering out ".onmicrosoft.com" adresses from ProxyAdresses - Get-AzureADUser

我想知道当我 运行:

$Users = Get-AzureADUser -All:$true | Select-Object DisplayName, mail, @{n="ProxyAddresses";e={$_.ProxyAddresses -join "`r`n"}}

结果会是 有点 就像这个 atm..

DisplayName        Mail                    ProxyAddresses
-----------        ----                    --------------
name1              name1@email.com         smtp:name1@email.com
name2              name2@email.com         SMTP:name2@email.com, SMTP:admin@email.com, smtp:name2@email.com.onmicrosoft.com...
name3              name3@email.com         smtp:name@email.com.onmicrosoft.com...

之后我将其绘制成 html table 中的 hudu。 atm 这很好用。但如果有办法从那里排除“onmicrosoft”地址,我会喜欢它。我不想用 | Where-Object { $_.ProxyAddresses -notmatch "onmicrosoft" } 因为那只会删除别名中的每个用户。

是否可以只做一个 -replace,然后用空字符串替换它?

如果有任何帮助,我将非常高兴! :)

感谢 Theo 提供您的建议。将其转换为帮助其他社区成员的答案。

$Users = Get-AzureADUser -All:$true | Select-Object DisplayName, mail, @{n="ProxyAddresses";e={$_.ProxyAddresses -join "`r`n"}} 

替换为以下代码以获取排除 .onmicrosoft.com

的用户
$Users = Get-AzureADUser -All:$true | Select-Object DisplayName, mail, @{n="ProxyAddresses";e={($_.ProxyAddresses | Where-Object {$_ -notmatch 'onmicrosoft'}) -join "rn"}}