我需要监视 Windows 7 事件日志中的特定错误 - 是否有单行代码可以执行此操作?
所以:例如 - 我正在留意“磁盘”错误;所以我可以通过执行以下操作来获取最新事件:
get-eventlog system -source "disk" -after ([datetime]::Today)
(实际上这是另一篇帖子的答案:Get-EventLog - easily filter by 'today'?)
但显然我必须继续运行它才能掌握所有警报。
最佳答案
没有一句台词。但是,您可以使用 System.Diagnostic.EventLog
类并注册到 EntryWritten
事件轮询 EventLog > 使用 Register-ObjectEvent cmdlet。
这里是我注册到应用程序日志并仅在回调中输出消息的示例:
$eventLog = New-Object System.Diagnostics.EventLog "application"
$eventLog.EnableRaisingEvents = $true
$job = Register-ObjectEvent -InputObject $eventLog -EventName "EntryWritten" -Action { Write-Host ($eventArgs.Entry.Message) }
Receive-Job $job
您现在可以使用以下方法测试回调:
$eventLog.Source = "test"
$eventLog.WriteEntry("test")
这会将 test
输出到控制台。
关于powershell - 如何注册 'get-eventlog' 的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36551151/