本文的第一部分介绍了配置管理员审计日志功能过程中使用的一些参数。第二部分将介绍关于该功能的其他一些方面,并通过实例检验该功能。
记录命令的参数
与记录命令行名称相类似,也可以对命令的参数进行配置,以确定哪些参数被记录到日志中。例如,New-ReceiveConnector 和Set-ReceiveConnector两个命令都可以使用RemoteIPRanges参数,因此,如果要记录使用RemoteIPRanges参数的命令行,可以运行下列命令:
Set-AdminAuditLogConfig –AdminAuditLogParameters RemoteIPRanges
再比如,要记录名称中包含“Database”字段的参数,需要运行下面的命令:
Set-AdminAuditLogConfig –AdminAuditLogParameters *Database*
与前面介绍的使用AdminAuditLogCmdlets参数的方式相同,可以指定几种不同类型的参数记录到日志,中间用逗号隔开。如,要记录名称中包含RemoteIPRanges 或者Database的参数,可运行下列命令:
Set-AdminAuditLogConfig –AdminAuditLogParameters RemoteIPRanges, *Database*
当然,也有可能需要记录所有的参数,如果默认配置已被修改,需要运行下列命令来完成:
Set-AdminAuditLogConfig –AdminAuditLogParameters *
AdminAuditLogCmdlets参数与AdminAuditLogParameters参数之间会发生相互作用。如果管理员运行一个命令A,并且匹配了AdminAuditLogCmdlets参数列表中的其中一个参数,就需要对AdminAuditLogParameters参数列表中的参数进行检查。如果匹配了AdminAuditLogParameters列表中的一个或多个参数,那么命令A的执行情况将被记录。
记录Test-命令
要记录或不记录以Test-开头的命令,如Test-OutlookWebServices和Test-ReplicationHealth,只需将Set-AdminAuditLogConfig命令的TestCmdletLoggingEnabled参数设置为true或 false即可。下面两个例子说明它的用法:
Set-AdminAuditLogConfig –TestCmdletLoggingEnabled $true
Set-AdminAuditLogConfig –TestCmdletLoggingEnabled $false
工作示例
下面的例子中,Exchange环境设置为记录所有命令,并记录命令的所有参数。首先,配置一个单独的用户Neil,接收管理员审计日志内容的邮箱设置为AuditLog,Neil具有打开AuditLog邮箱的权限。接着,创建Exchange命令行管理程序配置脚本,如下:
# ConfigAuditLog.ps1
# Configures administrator audit logging settings – log all cmdlets and cmdlet parameters
Set-AdminAuditLogConfig –AdminAuditLogCmdlets *
Set-AdminAuditLogConfig –AdminAuditLogParameters *
Set-AdminAuditLogConfig –AdminAuditLogMailbox auditlog@neilhobson.com
Set-AdminAuditLogConfig –AdminAuditLogEnabled $true
Set-AdminAuditLogConfig –TestCmdletLoggingEnabled $true
下一步,赋予Neil打开AuditLog邮箱的访问权限。这个操作可以通过Exchange管理控制台实现,由于管理员审计日志功能仅能使用Exchange命令行管理程序配置,因此本例也通过命令行管理程序进行说明。为授予用户Neil访问AuditLog邮箱的完整权限,需运行下列命令:
Add-MailboxPermission –Identity AuditLog –User Neil –AccessRights FullAccess –InheritanceType all
带有–Identity参数的Add-MailboxPermission命令用来识别被访问的邮箱名称,同时,–User参数用来识别接受授权的用户名。–AccessRights参数则用来指定要授予用户的权限,在本例中,授予用户Neil的权限为“FullAccess”,即“完全访问”。最后,–InheritanceType参数限定权限是否可继承。
运行结果如图4所示。
图4:授予用户Neil完全访问AuditLog邮箱的权限
Add-MailboxPermission命令运行后,现在,用户Neil可以进入AuditLog邮箱。通过图5可以看到,这个信箱已用Outlook Web应用程序打开。需要说明的是,由于Add-MailboxPermission命令是在启用管理员审计日志之后才运行的,因此该命令的运行也会被记录到日志中。
图5:访问AuditLog邮箱
审计日志的内容
假设有这样一种情形:Exchange管理员Rob要对用户Mark的邮箱设置进行修改。利用Exchange管理控制台,Rob将Mark的邮箱存储配额从默认的“Use mailbox database defaults”修改为自定义设置,并设置为邮箱达到10240KB时发出警告信息,达到20480KB时禁止发送新邮件。设置情况如图6所示。
图6:设置自定义邮箱配额
应用配置修改后,要运行的Exchange命令行管理程序将在Exchange 2010管理控制台显示出来,这是Exchange 2010引进的一项新功能。Rob点击了图6中的“确定”按钮之后,将显示Mark的属性窗口,如图7所示。从图7的左下方可以看到命令行管理程序图标(图中划圆圈处)。
图7:Exchange命令行管理程序图标
如果Rob点击这个图标,将出现一个独立的Exchange命令行管理程序窗口,该窗口详细说明了配置邮箱配额所要运行的命令,如图8所示。从这个窗口可以查看运行的命令,并且稍后可以验证这些命令是否已记录到日志中。
图8: Set-Mailbox命令的执行结果
在Rob修改配置完成之后,查看AuditLog邮箱中存储的管理员审计日志条目,可以得到如图9所示的结果。
图9:执行Set-Mailbox 命令产生的审计日志条目
从图9可以看到,该邮件的主题为“NEILHOBSONrob : Set-Mailbox”,清楚地表明了创建管理员审计日志条目的用户名,以及运行的命令行的名称。下面,逐一分析一下邮件正文的各个参数。
•Cmdlet Name:用户运行的命令的名称。
•Object Modified:命令所修改对象的详细信息。
•Parameter:从图中已经看到,Set-Mailbox命令匹配了4个不同的参数,分别是Identity、UseDatabaseQuotaDefaults、IssueWarningQuota以及 ProhibitSendQuota参数。这4个参数均被记录在日志条目中。
•Property Modified:这些字段显示了哪些对象的属性已被修改。
•Caller:实际运行命令的用户名。
•Succeeded:命令是否成功运行。如运行成功,返回一个值true;若运行不成功,则返回false。
•Error:如果管理员运行命令失败,这里将显示错误信息。
•Run Date:以世界标准时间格式显示管理员运行命令的日期和时间。
结语
Exchange 2010的管理员审计日志对于那些需要追查配置修改的组织来说,无疑是一项大受欢迎的新功能。利用该功能,Exchange组织可以轻松了解Exchange基础架构的改动情况。另外,功能亦能满足组织的文档化、修改控制或出于法律原因的需求。