我目前正在设计一个设置原型,其中 Windows Server 2008 通过源启动事件转发配置为 Windows XP 和 Windows 7 客户端的中央日志记录实例。所有计算机都位于同一个域中。
我根据配置了一切此 DevCenter 文章,但由于提供的日志配置 xml 存在问题,我只是创建了一个新的订阅(源启动),放入“域计算机”组并简单地将所有事件添加到其中。生成的 XML 如下所示:
<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*</Select>
<Select Path="Security">*</Select>
<Select Path="Setup">*</Select>
<Select Path="System">*</Select>
</Query>
</QueryList>
如您所见,我想记录所有事件记录器中的所有事件。但是,在评估日志服务器上的日志时,安全日志流中的所有事件都不会转发到中央日志实例(例如,当尝试以其他用户身份运行程序并输入错误密码时)。其他日志流(如系统或应用程序)运行正常。我已经完成了本文的验证部分,没有发现任何问题。到目前为止,我只测试了 Windows 7 客户端,因为 Windows XP 默认没有安装事件转发。
有什么提示我做错了什么吗?
答案1
对于 Windows Vista、7 和 2008:
如果您使用源启动订阅,源计算机上的 Windows-Eventcollector 服务 (wecsvc) 会将事件转发到收集器计算机,并以“网络服务”帐户运行。但网络服务帐户无权访问安全事件日志。本地组“事件日志读取器”可以访问所有日志。这意味着在每台源计算机上,您需要将“网络服务”帐户添加到本地“事件日志读取器”组,以便 Windows-Eventcollector 服务可以访问安全事件日志,并将其转发到收集器计算机。
使用 SDDL(安全描述符定义语言),您还可以使用 wevtutil 重新定义不同事件日志的权限,但这更为复杂,这意味着如果您在做任何事情之前没有阅读这篇文章并仔细制定 SDDL,您很容易破坏某些东西或导致不必要的影响。
答案2
可能是查询块中的 Path 属性正在过滤它。没有它它应该可以工作:
<QueryList>
<Query Id="0">
<Select Path="Application">*</Select>
<Select Path="Security">*</Select>
<Select Path="Setup">*</Select>
<Select Path="System">*</Select>
</Query>
</QueryList>
答案3
可能是安全事件日志的权限问题。
尝试将收集计算机帐户添加到其中一台源计算机上的管理员组,以确定是否能解决问题。
请注意,在 Windows 2008 和 Windows Vista/7 上,有一个新的组“事件日志读取器”,可以更轻松地提供此级别的访问。
答案4
我们只是遵循这个指南,和你们一样,我们没有取得任何进展,直到我们向域管理员添加了用于收集事件日志的委托帐户,我们才不再陷入困境。
下一步,找到更安全的方法来做到这一点!