需要从 PS 命令中过滤特定进程的结果

需要从 PS 命令中过滤特定进程的结果
get-nettcpconnection | select local*,remote*,state,@{Name='Process';Expression={(Get-Process -Id $_.OwningProcess).ProcessName }}

正在列出所有进程,我需要按进程名称进行过滤。

答案1

如果我正确理解了这个问题,您只想返回某些特定的流程。您可以使用where过滤器来做到这一点。

添加您想要返回的流程$searchfor

$searchfor = @("wininit","TeamViewer")
get-nettcpconnection | 
    select local*,remote*,state,@{Name='Process';Expression={(Get-Process -Id $_.OwningProcess).ProcessName }} |
        where { $_.Process -in $searchfor }

您也可以这样做,这可能会更快一些,因为您get-nettcpconnection只针对您感兴趣的进程运行:

$searchfor = @("wininit","TeamViewer")
Get-Process $searchfor | % { 
    $Proc = $_
    Get-nettcpconnection -OwningProcess $_.ID |
        select local*,remote*,state,@{Name='Process';Expression={$Proc.ProcessName}}
}

相关内容