如何通过其InstanceID选择事件日志

时间:2019-01-18 14:37:26

标签: powershell

我想获取所有与系统有关的EventLog条目和一个错误。在这些条目中,我想通过它们的特定InstanceID选择它们。

我要使用一个管道,在其中过滤器变薄,但我不知道如何将InstanceID与所需的InstanceID的值进行比较。

$sysLog = Get-EventLog -LogName System -EntryType Error |
          Where-Object{$_.InstanceId = 10016}
+ ... LogName System -EntryType Error | Where-Object{$_.InstanceId = 10016}
+                                                    ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation : (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyAssignmentException

1 个答案:

答案 0 :(得分:0)

我认为代码有效:

$sysLog = Get-EventLog -LogName System -EntryType Error |  Where-Object{$_.InstanceId -eq 10016}

$sysLog

请参阅:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comparison_operators?view=powershell-6

带有导出到日志文件的编辑示例:

Function WriteEventLogFile ([string] $pathToWriteLog, [string] $InstanceId){
    $sysLogItems = Get-EventLog -LogName System -EntryType Error | Where-Object {$_.InstanceId -eq $InstanceId}

    # write-host $sysLogItems

    $sysLogItems | Export-Csv -Path  $pathToWriteLog -NoTypeInformation
}

WriteEventLogFile -pathToWriteLog:"C:\Temp\envent_export.log" -InstanceId:"10016"