本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-NetFirewallRule」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は「Windows10」やWindows 11」、Windows Serverに標準搭載されている「Windows Defenderファイアウォール」のポリシーを取得する「Get-NetFirewallRule」コマンドレットです。
コンピュータの通信をフィルタリングして、意図しない通信によるセキュリティ侵害を防止する機能がWindows Defenderファイアウォールです。
Windows Defenderファイアウォールは、送信元アドレスや送信先アドレス、プロトコル、ポート番号といった要素を組み合わせた「ポリシー(ルール)」を設定し、ポリシーに通信の許可/不許可を設定することで通信をフィルタリングします。
「Get-NetFirewallRule」は、設定されているWindows Defenderファイアウォールのポリシーを取得するコマンドレットです。
なお、本コマンドレットは、従来コマンドプロンプトで使用していた「netsh」コマンドの「netsh advfirewall firewall show rule」オプション付き実行とほぼ同じものになります。
オプション | 意味 |
---|---|
-Name | 取得したいポリシー名を指定する。省略可能 |
-DisplayName | 取得したいポリシーの表示名を指定する。省略可能 |
-Group | 取得したいポリシーグループを指定する。省略可能 |
-DisplayGroup | 取得したいポリシーグループの表示名を指定する。省略可能 |
-Enabled | ポリシーの有効/無効を指定する。省略可能 |
-Direction | ポリシーの方向(Inbound/Outbound)を指定する。省略可能 |
-Action | ポリシーのアクション(Allow/Block)を指定する。省略可能 |
Get-NetFirewallRuleコマンドレットをオプションなしで実行すると、設定されているポリシーの全てを取得します(画面1)。なお、Get-NetFirewallRuleコマンドレットは管理者権限で実行する必要があります。
Get-NetFirewallRule
オプションを指定せずに実行した場合は、ポリシーの有効/無効問わず取得します。現在有効化されているポリシーだけを取得したい場合には、「-Enabled」オプションを使用します(画面2)。
Get-NetFirewallRule -Enabled True
本連載の第46回や第47回で説明した通り、プロファイルは「ネットワークの場所」に対して設定され、プロファイルに応じたポリシーがWindows Defenderファイアウォールに適用されます。
プロファイルに対して設定されているポリシーを取得する場合は、第47回で紹介した「Get-NetFirewallProfile」コマンドレットを併用します(画面3)。
Get-NetFirewallRule -AssociatedNetFirewallProfile (Get-NetFirewallProfile -Name Public) | FT DisplayName,Enabled,Profile,Action
ここでは分かりやすいようにテーブル形式での出力としましたが、プロファイルに「Public」を含む、もしくは「Any」(全てのプロファイル)のものだけを取得しています。
Windows Defenderファイアウォールのポリシーは、さまざまな条件を組み合わせて通信を絞り込んだ上で、当該通信を許可(Allow)するか、不許可(Block)とするかを指定します。「-Action」オプションを指定することで、通信を許可している、もしくは不許可としているポリシーだけを抜き出して取得することができます(画面4)。
Get-NetFirewallRule -Action Block
特定のポリシーをだけ取得する場合は、「-Name」オプションもしくは「-DisplayName」オプションを使用します。
GUIツールの「Windows Defenderファイアウォール」で参照可能な名前を使用する場合は、「-DisplayName」オプションを使用する必要があります(画面5)。
Get-NetFirewallRule -DisplayName "ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)"
ポリシーグループ単位で取得したい場合は、「-Group」オプションもしくは「-DisplayGroup」オプションを使用します(画面6)。
Get-NetFirewallRule -DisplayGroup "ファイルとプリンターの共有" | FT
なお、グループ名は必須の設定項目ではありません。ポリシーによってはグループ名が設定されていないものもあるので注意が必要です。
Microsoft MVP for Cloud and Datacenter Management(2012-2023)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.