基于查询的通讯组是 Exchange 2003 中包括的一种新的通讯组类型。基于查询的通讯组提供与标准通讯组相同的功能,但它使用 基于 RFC 2254“LDAP 筛选规则”的“轻量目录访问协议”(LDAP) 查询。基于查询的通讯组使用 LDAP 筛选规则来动态创建通讯组中的成员,而不是指定静态用户成员。通过使用基于查询的通讯组,您可以轻松地构建在特定服务器、特定存储组或数据库中拥有邮箱的所有用户的邮件列表。使用此方法比使用 Exchange 系统管理器或使用编程方法将用户添加到标准通讯组中要节省时间。如果用户驻留在服务器上,他们将收到邮件。
介绍基于查询的通讯组过程
由于通讯组的动态特性,使用基于查询的通讯组的管理成本要低得多。但是,对于产生许多结果的查询而言,基于查询的通讯组附带的性能成本会比较高。此成本使用服务器资源来衡量(例如 CPU 使用率较高和工作集增加),原因是发送到基于查询的通讯组的每个邮件都会导致对 Microsoft Active Directory 目录服务运行相应的 LDAP 查询来确定其成员。您无法在全局地址列表中查看基于查询的通讯组的成员,因为它是在每次发送邮件时动态生成的。但是,如果右键单击该通讯组,单击“
属性”,然后单击“
预览”选项卡,则可以看到该动态列表。
将邮件提交到基于查询的通讯组后,Exchange 对该邮件的处理方式与对发给其他收件人的邮件的处理方式会略有不同:
1. |
邮件会通过 Exchange 存储驱动程序或“简单邮件传输协议”(SMTP) 提交到提交队列。 |
2. |
分类器(负责地址解析的传输组件)会确定收件人是基于查询的通讯组。 |
3. |
分类器将 LDAP 查询请求发送到全局编录服务器。 |
4. |
全局编录服务器运行该查询,然后返回与查询匹配的地址集。 |
5. |
在收到与查询匹配的完整地址集后,分类器会生成包含所有用户的收件人列表。分类器必须具有完整的收件人集才可以将邮件交付传送。如果在将基于查询的通讯组展开到各个收件人的过程中发生错误,分类器必须重新启动此过程。 |
6. |
在分类器将展开的完整收件人列表发送给路由后,标准邮件传递过程会继续,并且邮件将被传递到用户的邮箱。 |
如果为基于查询的通讯组使用专用的展开服务器(一台只负责展开通讯组的服务器),此过程会稍有不同。在这种情况下,分类器不是像在第 4 步那样将查询发送到全局编录服务器去进行展开,而是先将邮件传送到专用的展开服务器。展开操作在邮件到达展开服务器后进行。传递过程与本文前面所述的过程相同。
基于查询的通讯组准则
下表描述了关于如何使用基于查询的通讯组的准则:
• |
它们可以具有限制。可以限定谁能向基于查询的通讯组发送邮件。 |
• |
它们可以在专用的服务器展开(如果需要)。 |
• |
它们可以用于 Microsoft Exchange 2000 Server 或 Exchange 2003 用户以及基于联系人的收件人。 |
• |
它们可以用来限制通用通讯组邮件限制。 |
• |
它们可以嵌套。最好使用通用通讯组。 |
• |
它们不能是安全主体。 |
• |
它们不能用在包括 Exchange Server 4.0、Exchange Server 5.0 或 Exchange Server 5.5 的 Exchange 混合模式环境中。 |
• |
它们不能对 LDAP 查询使用外部目录服务。您必须将外部对象复制到 Active Directory。 |
• |
筛选器必须使用全局目录中的属性;强烈建议使用“预览”选项 |
• |
对查询中使用的属性编制索引。索引可以极大地提高查询的性能,并减少展开通讯组以及将邮件传递给指定收件人所需要的时间。有关编制属性索引的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
313992 HOW TO: Add an Attribute to the Global Catalog in Windows 2000 |
• |
始终使用通用组,尤其在多域环境中。使用本地组和全局组、甚至使用嵌套组在多域环境中都无法工作,因为它们的成员不会复制到所有全局编录服务器上 |
您必须使用 Exchange 2003 版本的“Exchange 系统管理器”以及 Active Directory“用户”和“计算机”来创建基于查询的通讯组。您不能在不升级管理控制台的情况下创建基于查询的通讯组。如果您有 Exchange 2000 计算机,那么必须至少将它们升级到 Exchange 2000 Server Service Pack 3。Exchange 组织必须处于本机模式(计算机都不能运行 Exchange 2000 以前的版本)。
配置 Exchange 2000 Service Pack 3 计算机以提高可靠性
如果组织中基于查询的通讯组是用 Windows 2000 全局编录展开的,那么,要配置 Exchange 2000 SP3 服务器来提高可靠性,请执行下列操作。
警告:注册表编辑器使用不当可造成严重问题,这些问题可能需要重新安装操作系统。Microsoft 不保证能够解决因为注册表编辑器使用不当而产生的问题。使用注册表编辑器需要您自担风险。
1. |
要启动注册表编辑器,请单击“开始”,再单击“运行”,然后键入 regedit。 |
2. |
展开下列注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMTPSVC\Parameters |
3. |
右键单击“参数”,指向“新建”,然后单击“DWORD 值”。 |
4. |
键入 DynamicDLPageSize,然后按 Enter 键。 |
5. |
右键单击“DynamicDLPageSize”,然后单击“修改”。 |
6. |
在“编辑 DWORD 值”中的“基数”下,单击“十进制”。 |
7. |
在“数值数据”下,键入 31,然后单击“确定”。 |
疑难解答
使用预览功能查看查询结果
如果筛选字符串格式无效或包含错误的 LDAP 语法,那么全局编录服务器将不会运行此查询。如果您使用 Active Directory 用户和计算机来创建查询,它可以帮助您防止构造错误的查询。使用“
预览”查看查询的结果;可以使用预览功能来确保查询有效并返回您期望的结果。为此,请按照下列步骤操作:
1. |
单击“开始”,指向“程序”,指向“管理工具”,然后单击“Active Directory 用户和计算机”。 |
2. |
单击“操作”,指向“新建”,然后单击“基于查询的通讯组”。 |
3. |
键入基于查询的通讯组的名称,然后单击“下一步”。 |
4. |
单击以选择要使用的筛选器选项,然后单击“下一步”。 |
5. |
单击“完成”。 |
6. |
右键单击新建的基于查询的通讯组,然后单击“属性”。 |
7. |
单击“预览”选项卡,然后单击“启动”。 |
8. |
查询结果会在“预览”下列出。 |
代码为 5.2.4 的未送达报告,以及事件 6025 或事件 6026
如果您创建基于错误的 LDAP 查询的通讯组,那么,当用户向基于查询的通讯组发送邮件时,用户就会收到代码为 5.2.4 的未送达报告:
Unable to expand a distribution list to deliver the message to its members.Try again or contact your system administrator.服务器名称 #5.2.4
此外,如果启用分类器日志记录,将记录下面两个事件之一:
事件 6025
Event Type: Error
Event Source: MSExchangeTransport
Event Category: Categorizer
Event ID: 6025
Description: The categorizer failed to expand the dynamic distribution list with address %1:%2 because of a misconfiguration in the directory.The dynamic membership base DN is invalid. 如果删除了基本判别名,就会发生此事件。基于查询的通讯展开依靠其基本判别名来引用目录中的有效容器。如果删除了基于查询的通讯组的基本判别名容器,分类器就无法运行该查询,而且发件人会收到代码为 5.2.4 的未送达报告。
例如,您在“用户”容器中为所有销售人员创建一个“销售”容器。接下来,您通过使用“销售”容器构建一个基于查询的通讯组,然后删除该“销售”容器。这样,该查询就无法再运行了。
事件 6026
Event Type: Error
Event Source: MSExchangeTransport
Event Category: Categorizer
Event ID: 6026
Description: The categorizer failed to expand the dynamic distribution list with address %1:%2 because of a misconfiguration in the directory.The dynamic membership filter string is invalid. 此事件指出 LDAP 筛选器语法有问题。请检查 LDAP 筛选器,如果必要,请重新创建。
邮件似乎不见了
如果筛选字符串格式正确,但未产生结果,那么发件人将不会收到传递状态通知邮件。此现象与向空通讯组发送邮件时所得到的结果类似。邮件跟踪可以会显示邮件在提交给分类器后消失。
使用 Active Directory 用户和计算机中的“
预览”按钮可以确认您需要从查询中得到的结果。如果预览为空,那么请再次检查筛选器。确保您只使用全局编录中的属性。 有关如何检验属性是否在全局编录中的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
230663 HOW TO: Enumerate Attributes Replicated to the Global Catalog
有关如何添加其他属性的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
313992 HOW TO: Add an Attribute to the Global Catalog in Windows 2000
备注:Exchange 系统管理器通过使用当前用户的管理凭据来运行。如果某个管理员具有比 Exchange 计算机系统帐户权限更高的管理凭据,他在预览基于查询的通讯组时,就可以访问 Exchange 计算机不能访问但他能够访问的 Active Directory 属性。该管理员将在查询预览中看到正确的结果集,但分类器将通过使用与 Exchange 计算机系统帐户关联的管理凭据来运行。分类器将检索不到相同的结果集。当发生此现象时,邮件将不会像所期望的那样发送到基于查询的通讯组。
邮件仍然留在等待目录查找系统队列中
分类器必须具有完整的收件人集才可以将邮件交付传送。因此,如果在基于查询的通讯组展开到各个收件人的过程中发生错误,分类器必须重新启动此过程。如果错误被视为是临时的,那么邮件将在“
等待目录查找”队列中排队,直到所有收件人都已成功解析。通常,此问题是由于无法使用全局编录服务器导致的,但其他原因也会导致此问题。