簡體   English   中英

使用Get-AzureADUser在PowerShell中從“ SMTP:email@domain.com”中刪除“ SMTP”

[英]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.comX500: /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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM