この小さなPowerShellスクリプトを使用して、5秒ごとにnetstat -ano出力を探し、任意のIPアドレスのポート80で発信接続のみをフィルタリングし、ソケットを開いた関連プロセスをキャッチしようとしています。ここでの問題は、出力に複数のエントリがある場合、配列を処理できないことだと思います。ここに何が欠けていますか?これを行うためのより良い方法はありますか?
while(1) {netstat -ano | ? {$_ -like "*10.10.10.10:* *:80 *"} |
% {
$_ -match "\d+$";
$matches | ForEach-Object {
Get-Process -id $matches[0] | Format-List *;
(Get-Process -id $matches[0]).WaitForExit()
}
Start-Sleep -s 5;
}
}