diff --git a/lib/provider/eventlog/Get-IcingaEventLog.psm1 b/lib/provider/eventlog/Get-IcingaEventLog.psm1 index 87f734e..5a284d5 100644 --- a/lib/provider/eventlog/Get-IcingaEventLog.psm1 +++ b/lib/provider/eventlog/Get-IcingaEventLog.psm1 @@ -46,9 +46,6 @@ function Get-IcingaEventLog() if ($null -ne $IncludeEntryType) { $EventLogArguments.Add('EntryType', $IncludeEntryType); } - if ($null -ne $IncludeMessage) { - $EventLogArguments.Add('Message', $IncludeMessage); - } if ($null -ne $After) { $EventLogArguments.Add('After', $After); } @@ -64,21 +61,21 @@ function Get-IcingaEventLog() Exit-IcingaThrowException -InputString $_.Exception -ExceptionType 'Unhandled' -Force; } - if ($null -ne $ExcludeEventId -Or $null -ne $ExcludeUsername -Or $null -ne $ExcludeEntryType -Or $null -ne $ExcludeMessage) { + if ($null -ne $ExcludeEventId -Or $null -ne $ExcludeUsername -Or $null -ne $ExcludeEntryType -Or $null -ne $ExcludeMessage -Or $null -ne $IncludeMessage) { $filteredEvents = @(); foreach ($event in $events) { # Filter out excluded event IDs - if ($event.InstanceID -contains $ExcludeEventId) { + if ($ExcludeEventId.Count -ne 0 -And $event.InstanceID -contains $ExcludeEventId) { continue; } # Filter out excluded event IDs - if ($event.UserName -contains $ExcludeUsername) { + if ($ExcludeUsername.Count -ne 0 -And $event.UserName -contains $ExcludeUsername) { continue; } # Filter out excluded event IDs - if ($event.EntryType -contains $ExcludeEntryType) { + if ($ExcludeEntryType.Count -ne 0 -And $event.EntryType -contains $ExcludeEntryType) { continue; } @@ -95,6 +92,20 @@ function Get-IcingaEventLog() continue; } + [bool]$skip = $TRUE; + + foreach ($inMessage in $IncludeMessage) { + # Filter for specific message content + if ([string]$event.Message -like [string]$inMessage) { + $skip = $FALSE; + break; + } + } + + if ($skip) { + continue; + } + $filteredEvents += $event; }