使用通配符过滤电子邮件

Filter email with wild card

从文档中找到 here

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

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

使用时能找到群:

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

但是如果我使用文档中说支持的通配符,则什么也找不到。

我知道我可以通过将命令传送到 Where-ObjectForEach-Object 来实现此功能,但是如果有数千个对象,这将比使用 -Filter 花费更多的时间,所以我只是想知道是否确实可以使用通配符过滤 EmailAddresses

我也知道我可以使用 PrimarySmtpAddressWindowsEmailAddress 进行过滤,但我更希望能够通过 EmailAddresses [=33] 下的任何电子邮件地址进行搜索=].

当您使用 -Filter 作为参数时,您没有使用标准的 PowerShell 过滤(这是 -Like 比较运算符的来源)。相反,您只能使用提供商的本机过滤功能。它们通常使用非常奇怪的语法,这与 PowerShell 做事的方式不同。

阅读有关允许使用比较运算符的完整细目,我发现 Emailaddresses 确实允许使用通配符...所以我认为这是错误的。抱歉,伙计,它应该可以工作, based on what I see here.

我需要包含前缀。这样做之后它完美地工作了。

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