我正在尝试使用PowerShell在O365 Exchange中查找与特定域匹配的电子邮件地址。
如果我使用:
Get-Recipient -ResultSize unlimited -filter '(PrimarySMTPAddress -like "*smith*")' | fl primarysmtpaddress
我得到了所有带有字符串的地址
如果我使用:
Get-Recipient -ResultSize unlimited -filter '(PrimarySMTPAddress -like "*@domain*")' | fl primarysmtpaddress
我没有结果。
@之后似乎没有任何匹配项。
我想使用-filter
而不是where语句,因为它快得多。
答案 0 :(得分:0)
我能够重现您的问题。它似乎与您过滤的特定属性“PrimarySMTPAddress”有关。
通过更改过滤器语句以利用“EmailAddresses”(电子邮件地址存储在其中的另一个属性),我能够使过滤器语句返回结果:
Get-Recipient -ResultSize unlimited -filter '(EmailAddresses -like "*@domain*")' | fl primarysmtpaddress
我看到的其他注意事项:“可过滤属性”文档提到避免使用“PrimarySMTPAddress”的另一个我不知道的原因:
<块引用>不要使用 PrimarySmtpAddress 属性;请改用 EmailAddresses 属性。任何使用 PrimarySmtpAddress 属性的过滤器也将搜索 EmailAddresses 属性中的值。例如,如果邮箱的主电子邮件地址为 dario@contoso.com,附加代理地址为 dario2@contoso.com 和 dario3@contoso.com,则以下所有筛选器都将在结果中返回该邮箱:“PrimarySmtpAddress - eq 'dario@contoso.com'"、"PrimarySmtpAddress -eq 'dario2@contoso.com'" 或 "PrimarySmtpAddress -eq 'dario3@contoso.com'"。
来源 https://docs.microsoft.com/en-us/powershell/exchange/filter-properties?view=exchange-ps