我当前正在使用以下脚本。
Get-AzureADUser |
Select-Object @(
@{L = "Name"; E = { $_.DisplayName}}
@{L = "Email"; E = { $_.UserPrincipalName}}
@{L = "Aliases"; E = { $_.ProxyAddresses -replace '^smtp:' -join ';' }}
)
我的大多数结果都返回一个类似于email@domain.onmicrosoft.com
的电子邮件地址。我需要从“别名(ProxyAdresses)”字段中的阵列中删除这些电子邮件。本质上,任何包含onmicrosoft.com
的电子邮件都需要删除。
当前结果:email1@domain.com;email2@domain.com;email3@domain.onmicrosoft.com
期望的结果:email1@domain.com;email2@domain.com
答案 0 :(得分:1)
您可以在此处链接另一个运算符,以充当过滤器:
Get-AzureADUser |
Select-Object @(
@{L = "Name"; E = { $_.DisplayName}}
@{L = "Email"; E = { $_.UserPrincipalName}}
@{L = "Aliases"; E = { $_.ProxyAddresses -notlike '*onmicrosoft*' -replace '^smtp:' -join ';' }}
)
但是现在阅读变得越来越困难。请注意,该表达式是一个完整的脚本块,因此您可以将其分成多行并更清楚地写出内容,例如:
Get-AzureADUser |
Select-Object @(
@{L = "Name"; E = { $_.DisplayName}}
@{L = "Email"; E = { $_.UserPrincipalName}}
@{L = "Aliases"; E = {
$filteredMails = $_.ProxyAddresses | Where-Object {
$_ -notlike '*onmicrosoft*'
}
$filteredMails = $filteredMails -replace '^smtp:'
$filteredMails -join ';'
}}
)