この記事では、PowerShellを使って特定のポートをリッスンしているアプリケーションを確認する方法について解説します。この技術はセキュリティ診断やシステムの健全性チェック、ネットワークトラブルシューティングに役立ちます。記事は以下のように構成されています。
目次
PowerShellとは
PowerShellは、Microsoftが開発したスクリプト言語とシェル環境の一つです。主にWindows環境で使われ、システム管理作業を効率化することができます。
基本的なコマンド
PowerShellでは、`Get-Process`、`Get-Service`などの「Get-」で始まるコマンドが多く存在します。これらは情報を取得するためのコマンドです。
特定のポートをリッスンしているアプリケーションを確認する
以下のコードは、特定のポート(例:80番)をリッスンしているアプリケーションを確認するものです。
# 80番ポートをリッスンしているアプリケーションを確認
Get-NetTCPConnection -LocalPort 80
コードの説明
– `Get-NetTCPConnection`: 現在のTCP接続情報を取得するコマンド
– `-LocalPort 80`: ローカルポートが80番である接続情報をフィルターするオプション
補足
このコードはWindows 8以上またはWindows Server 2012以上で使用可能です。
応用例
以下は、このスクリプトの応用例です。
1. 複数のポートを一度に確認する
# 複数のポート(80番、443番)をリッスンしているアプリケーションを確認
$ports = 80,443
$ports | ForEach-Object { Get-NetTCPConnection -LocalPort $_ }
2. 結果をCSVファイルに出力する
# 結果をCSVファイルに出力
Get-NetTCPConnection -LocalPort 80 | Export-Csv -Path "C:\path\to\output.csv"
3. 特定のアプリケーションだけをフィルタリングする
# 特定のアプリケーション(例:chrome.exe)のリッスンしているポートを確認
Get-NetTCPConnection | Where-Object { $_.OwningProcess -eq (Get-Process -Name "chrome").Id }
4. リモートアドレスも確認する
# リモートアドレスも表示
Get-NetTCPConnection -LocalPort 80 | Select-Object LocalAddress, RemoteAddress
5. ポート範囲を指定して確認する
# 1000~2000番のポートをリッスンしているアプリケーションを確認
1000..2000 | ForEach-Object { Get-NetTCPConnection -LocalPort $_ }
まとめ
PowerShellは非常に強力なツールであり、特定のポートをリッスンしているアプリケーションを簡単に確認できます。上記の応用例を参考に、更に高度なネットワーク管理を行ってみてください。
コメント