Register-ObjectEventが機能するはずです。
Register-ObjectEvent -InputObject $someobject -EventName ProgressChanged `
-Action { Write-Host $EventArgs.ProgressPercentage }
PowerShell での非同期イベント処理の詳細については、この TechNet 記事を参照してください。
編集:コメントで要求されているように、テストで使用したコードは次のとおりです。
$timer = New-Object System.Timers.Timer
$timer.Interval = 500
$timer.AutoReset = $true
Register-ObjectEvent -InputObject $timer -EventName Elapsed `
-Action { Write-Host $EventArgs.SignalTime }
$timer.Start()
それ以降、イベントの信号時間がElapsed
0.5 秒ごとにコンソールに出力され、ブラインド タイプすることができました$timer.Stop()
。