使用通配符过滤电子邮件

时间:2015-08-28 17:36:42

标签: powershell powershell-v3.0

从找到的文档here

可以使用通配符过滤属性EmailAddresses。但是,使用通配符时,搜索结果无效。我的代码是:

Get-DistributionGroup -Filter { EmailAddresses -like "email*" }

我可以在使用时找到该组:

Get-DistributionGroup -Filter { EmailAddresses -eq "email@domain.com" }

但如果我使用支持文档的通配符,则找不到任何内容。

我知道我可以通过将命令汇总到Where-ObjectForEach-Object来完成此功能,但是使用数千个对象这比使用-Filter要花费更多时间,所以我是只是想知道是否确实可以用外卡过滤EmailAddresses

我也知道我可以使用PrimarySmtpAddressWindowsEmailAddress进行过滤,但我希望能够通过EmailAddresses属性下的任何电子邮件地址进行搜索。< / p>

2 个答案:

答案 0 :(得分:0)

当您使用-Filter作为参数时,您不使用标准的PowerShell过滤(这是-Like比较运算符的来源)。相反,您仍然使用提供程序的本机过滤功能。这些通常使用与PowerShell执行方式不同的非常奇怪的语法。

阅读允许使用哪些比较运算符的完整细分,我看到Emailaddresses确实允许使用通配符...所以我认为这已经破了。对不起,这应该是, based on what I see here.

答案 1 :(得分:0)

我需要包含前缀。这样做后效果很好。

Get-DistributionGroup -Filter { EmailAddresses -like "smtp:email*" }