![](/img/trans.png)
[英]How can I show the netstat command in powershell without the 0 in the Local address?
[英]How can i show only local address and PID in powershell?
(netstat -ano) -replace '0\.0\.0\.0:(\d+)','$1 '
我想要的是使用上面的代碼只顯示本地地址和 pid
Proto Local Address Foreign Address State PID
TCP 135 0 LISTENING 1172
TCP 445 0 LISTENING 4
TCP 5040 0 LISTENING 7300
TCP 5357 0 LISTENING 4
TCP 7680 0 LISTENING 14100
TCP 49664 0 LISTENING 988
TCP 49665 0 LISTENING 896
TCP 49666 0 LISTENING 1724
TCP 49667 0 LISTENING 1472
TCP 49668 0 LISTENING 3520
TCP 49728 0 LISTENING 968
但我想要什么
Local Address PID
135 1172
445 4
5040 7300
. .
. .
. .
要通過 Powershell 中的列標題獲得 output,您可以使用:
Get-NetTCPConnection |
Select-Object LocalAddress, OwningProcess |
Sort-Object LocalAddress, OwningProcess
您的示例數據似乎顯示端口而不是地址,因此:
Get-NetTCPConnection |
Select-Object LocalPort, OwningProcess |
Sort-Object LocalPort, OwningProcess
如果您還需要 UDP 連接, Get-NetUDPEndpoint
Get-NetUDPEndpoint 替換為上面的Get-NetTCPConnection
。
最后,如果你想把它們放在一起:
(Get-NetUDPEndpoint |
Select-Object @{L="Proto"; E={"TCP"}}, LocalAddress, LocalPort, OwningProcess
) + (Get-NetTCPConnection |
Select-Object @{L="Proto"; E={"UDP"}}, LocalAddress, LocalPort, OwningProcess
) |
Sort-Object Proto, LocalPort, LocalAddress
這會做你想要的嗎? 我假設“本地地址”是指端口號,而“PID”是指擁有的進程ID。 如果可以避免的話,我不想重命名它們。
Get-NetTCPConnection |
Where-Object { $_.LocalAddress -notmatch '^(127\..*|192\..*|0\..*|::$)' } |
Select-Object -Property @{n='LocalAddress';e={$_.LocalPort}},@{n='PID';e={$_.OwningProcess}} |
Sort-Object -Property LocalAddress
您已經獲得了所需的信息,現在只需使用討厭的正則表達式循環修剪掉多余的屬性? 可能需要一些間距調整
(netstat -ano) `
-replace '0\.0\.0\.0:(\d+)','$1 '|
foreach{
Write-host `
-nonewline "$([regex]::split("$_",'\s\s+')[2,5])`r`n"
}
我使用了重音(poweshell 轉義鍵)來轉義換行符以提高可讀性|
將 pipe 到下一行的任何內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.