2017-04-20 63 views

回答

3

-Id參數通過屬性名稱接受管道輸入,因此您必須添加具有包含PID的正確名稱的另一個屬性。儘管可能,我通常只是使用直接路由:

​​
2

幾種方法來做到這一點。當變量不能與屬性匹配時,您可以使用ForEach-Object循環(如Joey's answer),或者如果您想要做一些瘋狂的事情,可以調整管道對象以適合需要。

Get-NetTCPConnection -State Listen -LocalPort 6005 | 
    Select-Object @{Name="PID";E={$_.OwningProcess}} | 
    Get-Process 

由於Get-Process正在尋找相匹配,我們只使用一個計算的屬性給它什麼它想要的管道可變特性PID。

在這種情況下使用ForEach-Object要簡單得多。只是想讓你知道還有另一種方式。

3

你可以在這裏看到幾個選項。首先,也是最簡單的,你可以把它管到ForEach-Object循環,並運行在Get-Process

Get-NetTCPConnection -State Listen -LocalPort 6005 | 
    ForEach-Object { 
     Get-Process -PID $_.OwningProcess 
    } 

或者,如果你運行Get-Help Get-Process -PArameter Id你可以看到,Id參數接受來自管道的屬性名稱值,所以你可以創建該屬性,並直接管道到Get-Process

Get-NetTCPConnection -State Listen -LocalPort 6005 | 
    Select @{l='Id';e={$_.OwningProcess}} | 
    Get-Process