[CmdletBinding()]param( [string[]]$Instance, [string[]]$Application, [string[]]$Runtime ) $local:cols = [ordered]@{ 'instance'= 'Instance' 'pid'= 'PID' 'application'= 'Application' 'runtime' = 'Runtime' } $local:paks = @( $($cols.Values -join "`t")) + $( flatpak ps "--columns=$($cols.Keys -join ',')" ) -join "`n" | ConvertFrom-Csv -Delimiter "`t" | Where-Object { $local:p = $_ (-not $Instance -or $( $_ -in $Instance ) ) -and (-not $Application -or $( $Application | Where-Object { $($p.Application) -match $_ } )) -and (-not $Runtime -or $( $Runtime | Where-Object { $($p.Runtime) -match $_ } )) } $paks