【 Get-NetFirewallRule 】コマンドレット―― Windows Defenderファイアウォールのポリシーを取得するWindows PowerShell基本Tips(48)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-NetFirewallRule」コマンドレットを解説します。

» 2022年11月04日 05時00分 公開
[後藤諭史@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は「Windows10」やWindows 11」、Windows Serverに標準搭載されている「Windows Defenderファイアウォール」のポリシーを取得する「Get-NetFirewallRule」コマンドレットです。

Get-NetFirewallRuleコマンドレットとは?

 コンピュータの通信をフィルタリングして、意図しない通信によるセキュリティ侵害を防止する機能がWindows Defenderファイアウォールです。

 Windows Defenderファイアウォールは、送信元アドレスや送信先アドレス、プロトコル、ポート番号といった要素を組み合わせた「ポリシー(ルール)」を設定し、ポリシーに通信の許可/不許可を設定することで通信をフィルタリングします。

 「Get-NetFirewallRule」は、設定されているWindows Defenderファイアウォールのポリシーを取得するコマンドレットです。

 なお、本コマンドレットは、従来コマンドプロンプトで使用していた「netsh」コマンドの「netsh advfirewall firewall show rule」オプション付き実行とほぼ同じものになります。

Get-NetFirewallRuleコマンドレットの書式

Get-NetFirewallRule [オプション]


Get-NetFirewallRuleコマンドレットの主なオプション

オプション 意味
-Name 取得したいポリシー名を指定する。省略可能
-DisplayName 取得したいポリシーの表示名を指定する。省略可能
-Group 取得したいポリシーグループを指定する。省略可能
-DisplayGroup 取得したいポリシーグループの表示名を指定する。省略可能
-Enabled ポリシーの有効/無効を指定する。省略可能
-Direction ポリシーの方向(Inbound/Outbound)を指定する。省略可能
-Action ポリシーのアクション(Allow/Block)を指定する。省略可能


全てのポリシーを取得する

 Get-NetFirewallRuleコマンドレットをオプションなしで実行すると、設定されているポリシーの全てを取得します(画面1)。なお、Get-NetFirewallRuleコマンドレットは管理者権限で実行する必要があります。

コマンドレット実行例

Get-NetFirewallRule

画面1 画面1 設定済みポリシーを全て取得した

 オプションを指定せずに実行した場合は、ポリシーの有効/無効問わず取得します。現在有効化されているポリシーだけを取得したい場合には、「-Enabled」オプションを使用します(画面2)。

コマンドレット実行例

Get-NetFirewallRule -Enabled True

画面2 画面2 「-Enabled」オプションを使用して、有効化されているポリシーのみを取得した


プロファイルごとに適用されるポリシーを取得する

 本連載の第46回第47回で説明した通り、プロファイルは「ネットワークの場所」に対して設定され、プロファイルに応じたポリシーがWindows Defenderファイアウォールに適用されます。

 プロファイルに対して設定されているポリシーを取得する場合は、第47回で紹介した「Get-NetFirewallProfile」コマンドレットを併用します(画面3)。

コマンドレット実行例

Get-NetFirewallRule -AssociatedNetFirewallProfile (Get-NetFirewallProfile -Name Public)  | FT DisplayName,Enabled,Profile,Action

画面3 画面3 Get-NetFirewallProfileコマンドレットを併用して、「Public」プロファイルに設定されているポリシーをテーブル形式で取得した

 ここでは分かりやすいようにテーブル形式での出力としましたが、プロファイルに「Public」を含む、もしくは「Any」(全てのプロファイル)のものだけを取得しています。



アクションを指定してポリシーを取得する

 Windows Defenderファイアウォールのポリシーは、さまざまな条件を組み合わせて通信を絞り込んだ上で、当該通信を許可(Allow)するか、不許可(Block)とするかを指定します。「-Action」オプションを指定することで、通信を許可している、もしくは不許可としているポリシーだけを抜き出して取得することができます(画面4)。

コマンドレット実行例

Get-NetFirewallRule -Action Block

画面4 画面4 「-Action Block」オプションを指定して、通信を不許可(Block)とするポリシーのみを取得した


特定のポリシーだけを取得する

 特定のポリシーをだけ取得する場合は、「-Name」オプションもしくは「-DisplayName」オプションを使用します。

 GUIツールの「Windows Defenderファイアウォール」で参照可能な名前を使用する場合は、「-DisplayName」オプションを使用する必要があります(画面5)。

コマンドレット実行例

Get-NetFirewallRule -DisplayName "ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)"

画面5 画面5 「-DisplayName」オプションを指定して、GUIでの表示名「ファイルとプリンターの共有(エコー要求 - ICMPv4 受信)」のルールのみを取得した

 ポリシーグループ単位で取得したい場合は、「-Group」オプションもしくは「-DisplayGroup」オプションを使用します(画面6)。

コマンドレット実行例

Get-NetFirewallRule -DisplayGroup "ファイルとプリンターの共有" | FT

画面6 画面6 「-DisplayGroup」オプションを指定して、GUIでのグループ表示名「ファイルとプリンターの共有」のルールのみテーブル形式で取得した

 なお、グループ名は必須の設定項目ではありません。ポリシーによってはグループ名が設定されていないものもあるので注意が必要です。

筆者紹介

後藤 諭史(ごとう さとし)

Microsoft MVP for Cloud and Datacenter Management(2012-2023)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。