From b2a1e06dbf8c329051065f358901fd9d7c6471b9 Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Sat, 10 Aug 2024 15:13:20 +0200 Subject: [PATCH] Fix non-functioning OneShot script --- scripts/Common/Scripts/Operations.ps1 | 28 +++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/scripts/Common/Scripts/Operations.ps1 b/scripts/Common/Scripts/Operations.ps1 index 3ed7d079..b11b9163 100644 --- a/scripts/Common/Scripts/Operations.ps1 +++ b/scripts/Common/Scripts/Operations.ps1 @@ -79,26 +79,30 @@ $null = New-Module { Set-Stage ([SetupStage]::OneShot); & $taskSetter $Task; - $job = & { + & { $identifier = "EventLog$oneShotTrigger"; $log = [System.Diagnostics.EventLog]::new($logName); + $log.EnableRaisingEvents = $true; $null = Register-ObjectEvent -InputObject $log -EventName EntryWritten -Action { - $entry = $event.SourceEventArgs.Entry; + $entry = $Event.SourceEventArgs.Entry; + $trigger = $Event.MessageData.Trigger; + $identifier = $Event.MessageData.Identifier; - if ($entry.EventID -eq $oneShotTrigger) { - $null = New-Event -SourceIdentifier $identifier; - } - }; + if ($entry.EventID -eq $trigger) { + $null = New-Event -SourceIdentifier $identifier; + } + } ` + -MessageData @{ + Trigger = $oneShotTrigger; + Identifier = $identifier; + }; - Start-Job { - Wait-Event -SourceIdentifier $identifier; - Wait-Event -SourceIdentifier $identifier; - }; + Write-EventLog -LogName $logName -Source $logName -EventId $oneShotTrigger -Message "Starting OneShot task ``$(Get-OneShotTask)``…"; + Remove-Event -EventIdentifier (Wait-Event -SourceIdentifier $identifier).EventIdentifier; + $null = Wait-Event -SourceIdentifier $identifier; }; - Write-EventLog -LogName $logName -Source $logName -EventId $oneShotTrigger -Message "Starting OneShot task ``$(Get-OneShotTask)``…"; - $null = Wait-Job $job; Set-Stage $currentStage; if (Test-Path $errorPath) {