もくじ
📝 はじめに
ネットワークやアプリケーションのトラブル対応をしていると、
「通信できない原因がファイアウォールなのか知りたい」
「どの通信が許可・ブロックされているのか確認したい」
と感じることはありませんか?
そんなときに役立つのが
Get-NetFirewallRule です。
この記事では、PowerShellでWindowsファイアウォールの規則を確認する基本的な使い方を、
切り分けの視点で分かりやすく解説します。
- 特定のアプリやポートが通信できない原因を調べたいとき
- ファイアウォールでブロックされていないか確認したいとき
- サーバーや業務PCのセキュリティ設定を把握したいとき
✅ このコマンドでできること(要点)
- Windowsファイアウォールの規則を一覧で確認できる
- 許可・ブロックの状態を把握できる
- 有効・無効の規則を判別できる
- 特定条件で規則を絞り込める
✅ Get-NetFirewallRule でできること
Get-NetFirewallRule は、
Windows Defender ファイアウォールに設定されている
通信規則(ルール)を一覧表示するコマンドです。
GUIで「Windows Defender ファイアウォールの詳細設定」を開かなくても、
PowerShellから現在のルール状態を確認できるのが大きな特徴です。
🧩 基本構文
Get-NetFirewallRule
引数を付けずに実行すると、
すべてのファイアウォール規則が表示されます。
▶ 基本的な使い方(まずこれだけ)
🔹 ファイアウォール規則を一覧で確認する
Get-NetFirewallRule
規則名、状態(Enabled)、動作(Action)などが表示されます。
一覧が表示されていれば、規則情報は正しく取得できています。
🔹 有効な規則だけを確認する
Get-NetFirewallRule | Where-Object {$_.Enabled -eq "True"}
現在有効になっている通信規則だけを確認できます。
🛠 よく使われる指定例
🔹 許可(Allow)されている規則を確認する
Get-NetFirewallRule | Where-Object {$_.Action -eq "Allow"}
通信を許可しているルールのみを抽出できます。
🔹 特定の名前を含む規則を探す
Get-NetFirewallRule | Where-Object {$_.DisplayName -like "*HTTP*"}
Web通信や特定サービス関連の規則を探す際に便利です。
💼 実務でよく使う使用例(応用)
🔹 特定ポートの通信が許可されているか確認する
Get-NetFirewallRule |
Get-NetFirewallPortFilter |
Where-Object {$_.LocalPort -eq 443}
HTTPS(443番ポート)が許可されているかを切り分けできます。
🔹 特定アプリの通信規則を確認する
Get-NetFirewallRule |
Get-NetFirewallApplicationFilter |
Where-Object {$_.Program -like "*chrome*"}
- Test-NetConnection で実際の疎通確認
- Get-NetTCPConnection で通信状態を確認
- Get-NetFirewallProfile でプロファイル確認
🧩 よくある勘違い・つまずきポイント
- 規則が存在しても無効(Disabled)だと通信は許可されない
- 許可ルールがあっても、ブロックルールが優先される場合がある
- プロファイル(ドメイン/プライベート/パブリック)によって適用が異なる
- 受信規則と送信規則を混同しやすい
- アプリ規則とポート規則は別管理になっている
🔄 cmdとの違いについて
cmdにはファイアウォール規則を詳細に確認する標準コマンドは限られています。
Get-NetFirewallRule は、
PowerShellならではの柔軟な抽出・絞り込みができる点が強みです。
⚠ エラー・うまく動かないときの確認ポイント
- 管理者権限でPowerShellを起動しているか
- 対象のプロファイルが現在有効か
- 規則が無効化されていないか
- セキュリティソフト独自のFWが影響していないか
🧠 注意点
Get-NetFirewallRule は確認専用の安全なコマンドです。
ただし、規則の変更や削除を行う場合は、
業務影響やセキュリティリスクを十分に考慮しましょう。
📌 まとめ
- Get-NetFirewallRuleはFW規則確認の基本コマンド
- 通信不可トラブルの切り分けに必須
- 条件抽出で必要な規則だけ確認できる
- 次はポート疎通やTCP接続と組み合わせると効果的
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探せます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- ファイアウォール規則を確認したい
- 通信がブロックされていないか調べたい
