script/tools/public/Invoke-CbsProcessSupervisor.ps1

Function Invoke-CbsProcessSupervisor {
<#
.SYNOPSIS
When created in a new process, will stop all children of parent process when that parent exits.
#>

    $process = Get-Process -Id $pid
    $parent = $process.Parent

    while (!$parent.HasExited) {
        $children = Get-Process | ? Parent -like $parent
        Start-Sleep -Milliseconds 100
    }

    $children | Stop-Process
}