Exchange Online PowerShell cmdlet 中的萬用字元搜尋
Exchange Online PowerShell cmdlet 是否支持萬用字元?我想創建一個按郵件地址過濾但無法正常工作的新地址列表。
即使存在具有此類郵件地址的使用者,以下命令也不會產生任何結果:
Get-Recipient -Filter {(Alias -ne $null) -and (PrimarySmtpAddress -like '*@domain.com')}
當我手動輸入整個郵件地址時,它會返回一個結果,因此很明顯萬用字元過濾器不起作用。
那麼不支持萬用字元嗎?如果是這樣,那麼為什麼過濾郵件聯繫人時下面的命令會返回結果?
Get-Recipient -Filter {(Alias- ne $null) -and (ExternalEmailAddress -like '*@domain.com')}
您可能遇到的部分問題是某些屬性不能與
Get-Recipient
命令的 -Filter 參數一起使用。例如:
Get-Mailbox -Filter {(Alias -ne $null) -and (ExternalEmailAddress -like '*@example.com')}
結果是:
無法將參數“過濾器”綁定到目標。異常設置“過濾器”:“外部電子郵件地址”不是可辨識的可過濾屬性。有關可過濾屬性的完整列表,請參閱命令幫助。
解決此問題的一種方法需要更長的時間來處理,但有效:獲取所有具有別名的收件人,然後使用該
Where
函式處理查詢的第二部分。生成的命令集如下所示:
(Get-Recipient -Filter {(Alias -ne $null)} -ResultSize Unlimited).Where{$_.EmailAddresses -like "*example.com"}
使用上述方法可以獲得與通過管道傳輸到cmdlet
Where
相同的結果,但速度更快。Where-Object
以下語法將提供相同的結果:
Get-Recipient -Filter {(Alias -ne $null)} -ResultSize Unlimited | Where-Object {$_.EmailAddresses -like "*example.com"}