【 Get-NetFirewallAddressFilter 】コマンドレット―― Windows Defenderファイアウォールのアドレスフィルターを取得するWindows PowerShell基本Tips(52)

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

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

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

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

連載目次

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

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

 本連載第48回で紹介した「Get-NetFirewallRule」コマンドレットを使用することで、Windows Defenderファイアウォールに設定されているポリシーを取得できます。

 Windows Defenderファイアウォールのポリシーは、送信元アドレスや送信先アドレス、プロトコル、ポート番号といった要素の組み合わせですが、Get-NetFirewallRuleコマンドレットで取得できるポリシー情報には送信元アドレスや送信先アドレスの情報が含まれていません(画面1)。

画面1 画面1 Get-NetFirewallRuleコマンドレットで取得したポリシーには、アドレス情報が含まれていない

 今回解説する「Get-NetFirewallAddressFilter」は、Get-NetFirewallRuleコマンドレットでは取得できない、ポリシーに設定されたアドレスフィルターを取得するコマンドレットです。

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

Get-NetFirewallAddressFilter [オプション]


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

オプション 意味
-All 全てのアドレスフィルターを取得する場合に指定する。省略可能
-AssociatedNetFirewallRule 設定されたアドレスフィルターを取得したいポリシーを指定する。省略可能
-PolicyStore アドレスフィルターの取得先(ActiveStore/PersistentStore)を指定する。省略可能。省略時はPersistentStoreを取得する


全てのアドレスフィルターを取得する

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

コマンドレット実行例

Get-NetFirewallAddressFilter

画面2 画面2 設定済みの全てのアドレスフィルターを取得した


特定のリモートアドレス宛てのアドレスフィルターを取得する

 特定のリモートアドレス宛てのアドレスフィルターを取得するには、「Where-Object」コマンドレットを併用します(画面3)。

コマンドレット実行例

Get-NetFirewallAddressFilter | Where-Object -FilterScript { $_.RemoteAddress -eq "LocalSubnet6" }

画面3 画面3 リモートアドレス「LocalSubnet6」が指定されているアドレスフィルターを取得した


特定のポリシーにひも付いたアドレスフィルターを取得する

 Get-NetFirewallAddressFilterコマンドレット単体での実行ではアドレスフィルターだけが取得されるため、どのアドレスフィルターがどのポリシーにひも付けられているのか分かりません。

 特定のポリシーにひも付いたアドレスフィルターを取得したい場合は、「-AssociatedNetFirewallRule」オプションを使用します。なお、「-AssociatedNetFirewallRule」オプションを使用する場合は、Get-NetFirewallRuleコマンドレットを併用します。

 以下の実行例では、ポリシー名「FPS-ICMP4-ERQ-In」にひも付けられたアドレスフィルターを取得します(画面4)。

コマンドレット実行例

$Firewall_Rule = Get-NetFirewallRule -Name "FPS-ICMP4-ERQ-In"
Get-NetFirewallAddressFilter -AssociatedNetFirewallRule $Firewall_Rule

画面4 画面4 ポリシー名「FPS-ICMP4-ERQ-In」にひも付けられたアドレスフィルターを取得した

 なお、Get-NetFirewallRuleコマンドレットとGet-NetFirewallAddressFilterコマンドをパイプ(|)でつないで実行することも可能です(画面5)。

コマンドレット実行例

Get-NetFirewallRule -Name "FPS-ICMP4-ERQ-In" | Get-NetFirewallAddressFilter

画面5 画面5 Get-NetFirewallRuleコマンドレットとGet-NetFirewallAddressFilterコマンドをパイプでつないで実行した結果

筆者紹介

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

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のメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。