由SYSTEM用户运行时,Get-EventLog无法解析消息

时间:2018-09-28 15:51:30

标签: powershell event-log get-eventlog get-winevent

问题

我正在尝试安排一项监视远程计算机上的事件的工作。

我基于Get-EventLog命令编写了脚本,当由我的帐户运行时,脚本可以正常工作。但是,当我以Get-EventLog用户身份运行SYSTEM时,返回对象的.Message属性显示以下错误:

  

找不到源'Microsoft-Windows-Security-Auditing'中事件ID'4724'的描述。本地计算机可能没有显示该消息所必需的注册表信息或消息DLL文件,或者您可能没有访问它们的权限。以下信息是该事件的一部分:{somedata}

当我以Get-WinEvent用户的身份使用SYSTEM命令时,问题没有出现,并且.Message部分显示正确。

我会坚持使用Get-WinEvent,尤其是由于数据解析起来要容易得多(由于使用ToXML()方法),但是Get-EventLog却要快得多:((

问题

有人知道Get-EventLog由用户.Message运行时为何SYSTEM无法渲染COMPUTER$吗?

为避免明显的答案:

  • DOMAIN\Event Log Readers帐户是COMPUTER$组的成员,
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security帐户确实具有对远程计算机上的Microsoft-Windows-Security-Auditing的读取特权,
  • 显然,mock(Context::class.java) 和相关DLL的注册表项在源计算机和目标计算机上都是相同的。

1 个答案:

答案 0 :(得分:0)

尝试: Get-WinEvent -LogName“ Microsoft-Windows-安全性-审核”其中,ID -eq 4724 |选择对象-扩展属性消息