Powershell 使用通配符过滤电子邮件

Powershell 使用通配符过滤电子邮件,powershell,powershell-3.0,Powershell,Powershell 3.0,从找到的文档中 可以使用通配符筛选属性EmailAddresses。但是,当使用通配符时,搜索不会显示任何结果。我的代码是: Get-DistributionGroup -Filter { EmailAddresses -like "email*" } 我可以在使用时找到该组: Get-DistributionGroup -Filter { EmailAddresses -eq "email@domain.com" } 但是如果我使用了文档中所说的受支持的通配符,则什么也找不到 我知道我可以

从找到的文档中

可以使用通配符筛选属性EmailAddresses。但是,当使用通配符时,搜索不会显示任何结果。我的代码是:

Get-DistributionGroup -Filter { EmailAddresses -like "email*" }
我可以在使用时找到该组:

Get-DistributionGroup -Filter { EmailAddresses -eq "email@domain.com" }
但是如果我使用了文档中所说的受支持的通配符,则什么也找不到

我知道我可以通过将命令管道化到Where对象或ForEach对象中来实现这一功能,但是对于数千个对象,这将比使用-Filter花费更多的时间,所以我只是想知道是否确实可以使用通配符过滤emailaddress


我还知道我可以使用PrimarySmtpAddress或WindowsEmailAddress进行筛选,但我更希望能够通过EmailAddresses属性下的任何电子邮件地址进行搜索。

当您使用-filter作为参数时,您没有使用标准的PowerShell筛选,而-Like比较运算符就是从中产生的。相反,您只能使用提供者的本机过滤功能。它们经常使用非常奇怪的语法,这与PowerShell的工作方式不同


阅读允许使用比较运算符的完整分类,我发现Emailaddresses确实允许使用通配符…所以我认为这是错误的。对不起,伙计,应该可以用了

我需要加上前缀。这样做之后,它工作得非常好

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