EMS:使用“-like”和通配符将“获取邮箱”结果过滤到数据库

EMS:使用“-like”和通配符将“获取邮箱”结果过滤到数据库

最终目的是基于类似的 Exchange 数据库创建动态通讯组。我们将人员邮箱按地区分为几个数据库,并按照既定的惯例命名。

作为概念验证,我一直使用带有 -Filter 和 -or 运算符的“Get-Mailbox”命令列出多个数据库,并且它有效。结果如下:

Get-Mailbox -Filter {
(
(Database -eq 'CN=DBname01,CN=therestoftheDistinguishedName,DC=com') 
-or 
(Database -eq 'CN=DBname02,CN=therestoftheDistinguishedName,DC=com')
)
}

这很好用...我得到了这些数据库中的邮箱列表。但如果由于用户数量增加而添加另一个数据库,那就不理想了。

MS 文档这里说“homeMDB / Database 属性与通配符兼容...

因此,从理论上讲这应该可行并产生相同的结果:

Get-Mailbox -Filter {(Database -like "CN=DBname*")}

但是,此命令没有返回任何结果...没有错误...什么都没有。

-like 难道不支持吗?我做错了什么吗?

PS 对于 New-DynamicDistributionGroup 命令,‘-Filter’ 将被替换为‘-RecipientFilter’。Get-Mailbox 用于验证我的过滤器是否正常工作。

答案1

由于您将要使用 New-DynamicDistributionGroup 的 RecipientFilter 参数,我明白您为什么提出这个问题。

我可以让它与“数据库”以外的属性一起工作。见下文:

New-DynamicDistributionGroup "Test Group G" -RecipientFilter {DisplayName -like "G*"} -OrganizationalUnit $OU
$vargroup = Get-DynamicDistributionGroup "Test Group G"
Get-Recipient -RecipientPreviewFilter $varGroup.RecipientFilter

返回新组中包含的邮​​件用户(邮箱、联系人等)列表。但是,当您使用 RecipientFilter 参数运行它时{Database -like "partialDBname*"},上述相同命令也不会返回任何内容,就像Get-mailbox -Filter {Database -eq "DBname"}不返回任何内容一样。您可能必须在数据库属性以外的其他属性上执行此操作。当您查看 Get-Mailbox cmdlet TechNet 页面上的 Filter 参数时,它实际上指向您引用的相同“可过滤属性”页面。

编辑:看起来像是一个东西。这是一个旧的 MS 博客,但我没有看到有关未来版本的 Exchange 的任何更新。看起来无法对数据库进行过滤。不过您可以使用其他属性。您提到它们位于不同的区域。您可以使用组策略向用户对象添加/替换属性。

我将创建测试组并使用上述命令来确保我得到我想要的结果。

答案2

尝试这个命令:

get-mailbox |where{$_.database -like 'DBname*'}|ft name,database

相关内容