То, что я пытаюсь сделать, это получить функцию, чтобы остановить фид конвейера, когда достигнут лимит времени. Я создал тестовую функцию следующим образом:
function Test-PipelineStuff
{
    [cmdletbinding()]
    Param(
        [Parameter(ValueFromPipeLIne=$true)][int]$Foo,
        [Parameter(ValueFromPipeLIne=$true)][int]$MaxMins
    )
    begin { 
        "THE START" 
        $StartTime = Get-Date
        $StopTime = (get-date).AddMinutes($MaxMins)
        "Stop time is: $StopTime"
    } 
    process 
    {  
        $currTime = Get-Date
        if( $currTime -lt $StopTime ){
            "Processing $Foo"            
        }
        else{
            continue;
        }
    }
    end { "THE END" }
}
Это, безусловно, остановит конвейер, но никогда не называет мой блок "end {}", что в этом случае жизненно важно. Кто-нибудь знает, почему мой "end {}" блок не вызывается, когда я останавливаю конвейер, используя "continue"? Поведение, похоже, одинаково, если я выкидываю исключение PipelineStoppedException.
