![](/img/trans.png)
[英]Remove full email with specific domain in PowerShell using Get-AzureADUser
[英]Remove 'SMTP' from 'SMTP:email@domain.com' in PowerShell using Get-AzureADUser
我正在使用以下腳本為O365中的用戶顯示別名,這些別名最終將要導出。
Get-AzureADUser |
Select-Object @(
@{L = "Name"; E = { $_.DisplayName}}
@{L = "Email"; E = { $_.UserPrincipalName}}
@{L = "Aliases"; E = { $_.ProxyAddresses -join ";"}}
)
在“別名”( ProxyAddresses
)列中,顯示所有用“ ;
分隔的別名;
符合預期,但它還包括SMTP:
在所有方法之前。
有沒有辦法從這些值中刪除SMTP:
?
當前結果 : SMTP:email@domain.com;SMTP:email2@domain.com
email@domain.com;email2@domain.com
結果 : email@domain.com;email2@domain.com
Get-AzureADUser |
Select-Object @(
@{L = "Name"; E = { $_.DisplayName}}
@{L = "Email"; E = { $_.UserPrincipalName}}
@{L = "Aliases"; E = { $_.ProxyAddresses -replace '^smtp:' -join ';' }}
)
這將替換smtp:
在每個代理地址的開頭( ^
),使用PowerShell的功能使運算符自動在數組的所有成員上工作,然后加入結果。
如果您還想丟失“ .onmicrosoft.com”地址,則應該可以使用
Get-AzureADUser |
Select-Object @(
@{L = "Name"; E = { $_.DisplayName}}
@{L = "Email"; E = { $_.UserPrincipalName}}
@{L = "Aliases"; E = {
$proxies = $_.ProxyAddresses -replace '^smtp:'
$proxies = $proxies | Where-Object { $_ -notlike '*.onmicrosoft.com' }
$proxies -join '; ' }
}
)
請注意, ProxyAddresses
屬性還可以包含其他條目,例如SIP:upn@domain.com
或X500: /o=company/ou=External (FYDIBOHF25SPDLT)/cn=Recipients/cn=userxxx
如果您還想排除這些,請使用
Get-AzureADUser |
Select-Object @(
@{L = "Name"; E = { $_.DisplayName}}
@{L = "Email"; E = { $_.UserPrincipalName}}
@{L = "Aliases"; E = {
$proxies = $_.ProxyAddresses
$proxies = $proxies | Where-Object { $_ -match '^smtp:' -and $_ -notlike '*.onmicrosoft.com' }
$proxies -replace '^smtp:' -join '; ' }
}
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.