Get-EventLog一次只能读取一个事件日志名称下的事件。如果你想从多个事件名称中查找事件。你必须像这样在数组中追加信息:
$events = @(Get-EventLog -LogName System -EntryType Error) $events += Get-EventLog -LogName Application -EntryType Error $events
这种情况下,可能会优先使用便捷的WMI:它可以同时查询多个事件名称。
下面的例子会从“应用程序”和“系统”名称下获取前100个出错事件。(计算后,如果“应用程序”已经包含了100个错误,就不会返回“系统”日志中的错误,理当如此。)
Get-WmiObject -Class Win32_NTLogEvent -Filter 'Type="Error" and (LogFile="System" or LogFile="Application")' | Select-Object -First 100 -Property TimeGenerated, LogFile, EventCode, Message
当你把Get-WmiObject换成Get-CimInstance(从Windows PowerShell 3.0后引入的命令)后,令人费解的日期时间格式也会被自动转换成正常的日期和时间。
Get-CimInstance -Class Win32_NTLogEvent -Filter 'Type="Error" and (LogFile="System" or LogFile="Application")' | Select-Object -First 100 -Property TimeGenerated, LogFile, EventCode, Message
原文链接:Getting Error Events from Multiple Event Logs
荔非苔注:如果你使用的是中文版的操作系统,可能在测试后两个WMI例子时,发现没有返回信息,是不是命令错了。命令没错,是因为WMI的过滤条件的事件类型是基于本地化后的。请把英文“Error”改成中文“错误”即可。
Get-CimInstance -Class Win32_NTLogEvent -Filter 'Type="错误" and (LogFile="System" or LogFile="Application")' | Select-Object -First 100 -Property TimeGenerated, LogFile, EventCode, Message
本文链接: https://www.pstips.net/getting-error-events-from-multiple-event-logs.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!