scripts/public/VCTask.ps1
function Get-VCTask { [CmdLetBinding()] [OutputType([VisualCron.TaskClass])] Param( [Parameter(Mandatory,ValueFromPipeline)] [VisualCron.JobClass[]]$Job, [Parameter(Position=0)] [ValidateNotNullOrEmpty()] [string[]]$Name, [ValidateLength(36,36)] [string[]]$Id, [switch]$Running ) Process { foreach ($_job in $Job) { $vcServer = $_job.GetVCServer() $allTasks = $_job.Tasks if($PSBoundParameters.Keys -contains "Name") { $allTasks = $allTasks | Where-Object -FilterScript {$Name -contains $_.Name} } if($PSBoundParameters.Keys -contains "Id") { $allTasks = $allTasks | Where-Object -FilterScript {$Id -contains $_.Id} } $allTasks | Add-GetVCServerMethod -VCServer $vcServer $allTasks | Add-VCTaskProperties # If Param Running is set, filter Output for Tasks that a currently running if($Running) { $allTasks = $allTasks | Where-Object -FilterScript {$_.Status -eq 'Running'} } $allTasks | Write-Output } } } |