Skip to content

Commit 1e0a3d6

Browse files
committed
prevent malformed audit log rule from breaking processing
1 parent 93efece commit 1e0a3d6

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -372,22 +372,26 @@ function Test-CIPPAuditLogRules {
372372

373373
$MatchedRules = [System.Collections.Generic.List[string]]::new()
374374
$DataToProcess = foreach ($clause in $Where) {
375-
$ClauseStartTime = Get-Date
376-
Write-Warning "Webhook: Processing clause: $($clause.clause)"
377-
$ReturnedData = $ProcessedData | Where-Object { Invoke-Expression $clause.clause }
378-
if ($ReturnedData) {
379-
Write-Warning "Webhook: There is matching data: $(($ReturnedData.operation | Select-Object -Unique) -join ', ')"
380-
$ReturnedData = foreach ($item in $ReturnedData) {
381-
$item.CIPPAction = $clause.expectedAction
382-
$item.CIPPClause = $clause.CIPPClause -join ' and '
383-
$MatchedRules.Add($clause.CIPPClause -join ' and ')
384-
$item
375+
try {
376+
$ClauseStartTime = Get-Date
377+
Write-Warning "Webhook: Processing clause: $($clause.clause)"
378+
$ReturnedData = $ProcessedData | Where-Object { Invoke-Expression $clause.clause }
379+
if ($ReturnedData) {
380+
Write-Warning "Webhook: There is matching data: $(($ReturnedData.operation | Select-Object -Unique) -join ', ')"
381+
$ReturnedData = foreach ($item in $ReturnedData) {
382+
$item.CIPPAction = $clause.expectedAction
383+
$item.CIPPClause = $clause.CIPPClause -join ' and '
384+
$MatchedRules.Add($clause.CIPPClause -join ' and ')
385+
$item
386+
}
385387
}
388+
$ClauseEndTime = Get-Date
389+
$ClauseSeconds = ($ClauseEndTime - $ClauseStartTime).TotalSeconds
390+
Write-Warning "Task took $ClauseSeconds seconds for clause: $($clause.clause)"
391+
$ReturnedData
392+
} catch {
393+
Write-Warning "Error processing clause: $($clause.clause): $($_.Exception.Message)"
386394
}
387-
$ClauseEndTime = Get-Date
388-
$ClauseSeconds = ($ClauseEndTime - $ClauseStartTime).TotalSeconds
389-
Write-Warning "Task took $ClauseSeconds seconds for clause: $($clause.clause)"
390-
$ReturnedData
391395
}
392396
$Results.MatchedRules = @($MatchedRules | Select-Object -Unique)
393397
$Results.MatchedLogs = ($DataToProcess | Measure-Object).Count

0 commit comments

Comments
 (0)