使用通配符过滤电子邮件
Filter email with wild card
从文档中找到 here。
属性 EmailAddresses
可以用通配符过滤。但是,当使用通配符时,搜索没有结果。我的代码是:
Get-DistributionGroup -Filter { EmailAddresses -like "email*" }
使用时能找到群:
Get-DistributionGroup -Filter { EmailAddresses -eq "email@domain.com" }
但是如果我使用文档中说支持的通配符,则什么也找不到。
我知道我可以通过将命令传送到 Where-Object
或 ForEach-Object
来实现此功能,但是如果有数千个对象,这将比使用 -Filter
花费更多的时间,所以我只是想知道是否确实可以使用通配符过滤 EmailAddresses
。
我也知道我可以使用 PrimarySmtpAddress
或 WindowsEmailAddress
进行过滤,但我更希望能够通过 EmailAddresses
[=33] 下的任何电子邮件地址进行搜索=].
当您使用 -Filter 作为参数时,您没有使用标准的 PowerShell 过滤(这是 -Like 比较运算符的来源)。相反,您只能使用提供商的本机过滤功能。它们通常使用非常奇怪的语法,这与 PowerShell 做事的方式不同。
阅读有关允许使用比较运算符的完整细目,我发现 Emailaddresses 确实允许使用通配符...所以我认为这是错误的。抱歉,伙计,它应该可以工作, based on what I see here.
我需要包含前缀。这样做之后它完美地工作了。
Get-DistributionGroup -Filter { EmailAddresses -like "smtp:email*" }
从文档中找到 here。
属性 EmailAddresses
可以用通配符过滤。但是,当使用通配符时,搜索没有结果。我的代码是:
Get-DistributionGroup -Filter { EmailAddresses -like "email*" }
使用时能找到群:
Get-DistributionGroup -Filter { EmailAddresses -eq "email@domain.com" }
但是如果我使用文档中说支持的通配符,则什么也找不到。
我知道我可以通过将命令传送到 Where-Object
或 ForEach-Object
来实现此功能,但是如果有数千个对象,这将比使用 -Filter
花费更多的时间,所以我只是想知道是否确实可以使用通配符过滤 EmailAddresses
。
我也知道我可以使用 PrimarySmtpAddress
或 WindowsEmailAddress
进行过滤,但我更希望能够通过 EmailAddresses
[=33] 下的任何电子邮件地址进行搜索=].
当您使用 -Filter 作为参数时,您没有使用标准的 PowerShell 过滤(这是 -Like 比较运算符的来源)。相反,您只能使用提供商的本机过滤功能。它们通常使用非常奇怪的语法,这与 PowerShell 做事的方式不同。
阅读有关允许使用比较运算符的完整细目,我发现 Emailaddresses 确实允许使用通配符...所以我认为这是错误的。抱歉,伙计,它应该可以工作, based on what I see here.
我需要包含前缀。这样做之后它完美地工作了。
Get-DistributionGroup -Filter { EmailAddresses -like "smtp:email*" }