【 Get-NetFirewallPortFilter 】コマンドレット―― Windows Defenderファイアウォールのポートフィルターを取得する:Windows PowerShell基本Tips(53)
本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-NetFirewallPortFilter」コマンドレットを解説します。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Windows10」やWindows 11」、Windows Serverに標準搭載されている「Windows Defenderファイアウォール」で使用されるポートフィルターを取得する「Get-NetFirewallPortFilter」コマンドレットです。
目次
Get-NetFirewallPortFilterの概要 | 書式 | オプション
実行例
- 特定のポリシーにひも付いたポートフィルターを取得する
- 特定のローカルポート宛てのポートフィルターを取得する
- ポートフィルターを使用しているポリシーを取得する
- 特定のプロトコルを使用するポートフィルターを取得する
Get-NetFirewallPortFilterコマンドレットとは?
本連載第52回で紹介した「Get-NetFirewallAddressFilter」コマンドレットが「Windows Defenderファイアウォール」に設定されているアドレスフィルターを取得するように、「Get-NetFirewallPortFilter」はポリシーに設定された送信元ポート番号、送信先ポート番号といったポートフィルターを取得するコマンドレットです。
Get-NetFirewallPortFilterコマンドレットの主なオプション
オプション | 意味 |
---|---|
-All | 全てのアドレスフィルターを取得する場合に指定する。省略可能 |
-Protocol | 取得したいポートフィルターのプロトコルを指定する。省略可能 |
-AssociatedNetFirewallRule | 取得したいポートフィルターが設定されたポリシーを指定する。省略可能 |
-PolicyStore | ポートフィルターの取得先(ActiveStore/PersistentStore)を指定する。省略可能。省略時はPersistentStoreを取得する |
特定のポリシーにひも付いたポートフィルターを取得する
特定のポリシーにひも付いたポートフィルターを取得する場合は、本連載第52回で紹介したGet-NetFirewallAddressFilterコマンドレット同様、「-AssociatedNetFirewallRule」オプションを「Get-NetFirewallRule」コマンドレットと併用します(画面1)。なお、Get-NetFirewallPortFilterコマンドレットは管理者権限で実行する必要があります。
コマンドレット実行例
$Firewall_Rule = Get-NetFirewallRule -Name "FPS-SMB-In-TCP" Get-NetFirewallPortFilter -AssociatedNetFirewallRule $Firewall_Rule
また、Get-NetFirewallRuleコマンドレットとGet-NetFirewallPortFilterコマンドレットをパイプ(|)でつないで実行することも可能です(画面2)。
コマンドレット実行例
Get-NetFirewallRule -Name "FPS-ICMP4-ERQ-In" | Get-NetFirewallPortFilter
特定のローカルポート宛てのポートフィルターを取得する
特定のローカルポート宛てのポートフィルターが設定されているポリシーは、「Where-Object」コマンドレットを併用し、続いてGet-NetFirewallRuleコマンドレットとパイプでつなぐことで取得可能です(画面3)。
コマンドレット実行例
Get-NetFirewallPortFilter | Where-Object -FilterScript { $_.LocalPort -eq "3389" } | Get-NetFirewallRule
ポートフィルターを使用しているポリシーを取得する
Get-NetFirewallPortFilterコマンドレットを「Format-List *」とパイプでつないで実行することで、全てのオブジェクトを表示できます。この中の「InstanceID」が、使用しているポリシー名を表しています(画面4)。
従って、Format-Listコマンドレットで表示するプロパティを指定することで、ポートフィルターの内容と使用しているポリシー名を取得することができます(画面5)。
コマンドレット実行例
Get-NetFirewallPortFilter | fl Protocol,LocalPort,RemotePort,InstanceID
特定のプロトコルを使用するポートフィルターを取得する
Windows Defenderファイアウォールはプロトコルも指定可能なため、Get-NetFirewallPortFilterコマンドレットでもプロトコルを指定することが可能です(画面6)。
プロトコルは「番号」もしくは「名前」(TCP、UDP、ICMPv4、ICMPv6)を指定できますが、名前が設定されているプロトコルは番号(TCPであれば「6」)を指定しても「指定されたオブジェクトが見つからない」となるため、注意が必要です。
コマンドレット実行例
Get-NetFirewallPortFilter -protocol 2 | fl Protocol,LocalPort,RemotePort,InstanceID
筆者紹介
後藤 諭史(ごとう さとし)
Microsoft MVP for Cloud and Datacenter Management(2012-2023)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.