引言
有时,Exchange组织的管理员很难追查Exchange配置对象,甚至用户、分发组或联系对象发生的改动情况。排除各类故障时,了解组织内发生变化的事件类型、时间等要素非常重要。比如,了解发送/接收连接器最近的配置情况对于解决邮件路由问题非常有用。此外,记录配置的更改过程也可满足文档化及出于法律原因的某些需求。
图1显示了一个邮箱的属性。从图中可以看到该邮箱最近一次的修改日期,但利用图中提供的信息不足以分析出改动内容及修改人。
图1:用户对象的修改发生
本文将重点介绍Exchange 2010的一项新功能:管理员审计日志记录(Administrator Audit Logging) 。利用该功能,可对更改Exchange组织配置的各种Exchange命令行管理程序进行记录。管理员审计日志可记录Exchange命令行管理程序及Exchange管理控制台运行各种命令所进行的操作。此外,还可记录通过Exchange控制面板运行的命令。
但也有特例,并非所有的命令都被记录,比如以Get-开头的一些命令,包括Get-AcceptedDomain, Get-CASMailbox等。究其原因,主要是因为以Get-开头的这些命令实际上并没有对配置进行修改。
日志中记录的命令行操作以邮件信息的形式存储在Exchange管理员指定的邮箱中,因此,有必要对获准进入邮箱访问的人员进行严格限制。
管理员审计日志记录配置参数
配置管理员审计日志使用Set-AdminAuditLogConfig命令,如要查看该日志,则需使用Get-AdminAuditLogConfig命令。Set-AdminAuditLogConfig命令有一系列相关参数,本文主要介绍名称中包含“log”字符串的一部分参数。因此,可以使用Get-AdminAuditLogConfig命令,将名称中包含“log”字符串的参数选择出来,并将结果以管理形式输出到format-list命令。为此,可运行下列命令:
Get-AdminAuditLogConfig | fl *log*
图2显示了上述命令运行的结果。注意,该示例中的命令运行在默认安装的Exchange 2010之上,因此图中显示的参数值均为默认设置。
图2:Get-AdminAuditLogConfig命令运行的结果
下面介绍该命令的6个参数:
•AdminAuditLogEnabled—该参数的默认值为false,也就是说,管理员审计日志记录的缺省设置为禁用。如将此参数设置为true,则启用管理员审计日志记录。
•TestCmdletLoggingEnabled—该参数控制是否对Test-命令启用日志记录。默认情况下,Test-命令的运行不记录到日志,此类的命令包括Test-OutlookWebServices、Test-ReplicationHealth等。
•AdminAuditLogCmdlets—该参数可以显示当激活管理员审计日志时哪些命令的操作会被记录到日志。默认情况下,该参数设置为通过使用通配符*记录所有的命令行操作。
•AdminAuditLogParameters—所有命令均可以和相关的参数一起使用,AdminAuditLogParameters参数控制管理员审计日志是否记录命令行的参数。默认情况下,该参数设置为通过使用通配符*记录所有的命令行参数。
•AdminAuditLogAgeLimit—该参数用来控制日志项的保留期限。目前,Exchange 2010尚未启用该参数。由于日志项作为邮件信息存储,因此大型Exchange组织中可能产生许多日志项,从而导致随之产生大量的邮件信息。
•AdminAuditLogMailbox –该参数可控制使用哪个邮箱来存储日志记录的结果。从图2可以看到,该参数默认设置为空,但作为整个配置过程的一部分,需要将其启用。
配置管理员审计日志
在管理员审计日志启用之前,首先需要进行一些必要的设置,如存储记录结果的审计日志邮箱、命令列表以及记录下来的参数。
首先使用带有AdminAuditLogMailbox参数的Set-AdminAuditLogConfig命令来配置管理员审计日志邮箱选项。在下面的例子中,SMTP地址auditlog@neilhobson.com为专为容纳管理员审计日志创建的邮箱地址。需要注意的是,为此选定的邮箱必须存在于Exchange组织中。可用下列命令完成:
Set-AdminAuditLogConfig –AdminAuditLogMailbox auditlog@neilhobson.com
如果执行成功,将不会通过Exchange命令行管理程序直接产生任何的反馈信息。因此,运行该命令后,可以重新运行Get-AdminAuditLogConfig命令,以检验配置情况,如图3所示。
图3:成功检查配置情况
记录命令的名称
如前文所述,默认情况下,除Get-命令之外的所有命令都将被记录。要改变此配置,就应修改AdminAuditLogCmdlets参数。对于AdminAuditLogCmdlets参数而言,可指定个别的命令,也可使用通配符。如,要记录Set-TransportConfig命令,只需要运行下列命令:
Set-AdminAuditLogConfig –AdminAuditLogCmdlets Set-TransportConfig
同样,使用通配符也可记录所有名称中以ReceiveConnectorcmdlet结尾的命令,实现过程如下:
Set-AdminAuditLogConfig –AdminAuditLogCmdlets *ReceiveConnector
该操作将记录下New-ReceiveConnector、Set-ReceiveConnector以及Remove-ReceiveConnector等几个命令。如要记录名称中包含Config的命令,可以运行:
Set-AdminAuditLogConfig –AdminAuditLogCmdlets *Config*
当然,很可能需要同时记录几种不同类型的命令。因此,每个不同类型的命令可由AdminAuditLogCmdlets参数指定,并用逗号隔开。例如,要记录两个命令,其中一个命令的名称以ReceiveConnector结尾,另一个命令的名称中包含Config,需要运行以下命令:
Set-AdminAuditLogConfig –AdminAuditLogCmdlets *ReceiveConnector, *Config*
既然如此,很可能所有的命令行操作都需要记录,如果默认配置已被修改,需要运行下列命令来完成:
Set-AdminAuditLogConfig –AdminAuditLogCmdlets *
在大型Exchange环境中记录所有的命令行操作显然会产生许多日志条目,因此在实施之初就应仔细监控。
结语
本文主要介绍了Exchange 2010管理员审计日志的有关知识,重点提到了几种可用的配置参数。下一部分,主要介绍配置选项并以实例说明该功能的工作过程。