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

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

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

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

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

連載目次

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

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

 Windows Defenderファイアウォールは、コンピュータのローカルアドレスやリモートコンピュータのアドレス、プロトコル、ポート番号といった要素を組み合わせてポリシーを作成し、コンピュータへ送受信するパケットに対してそのポリシーに従ったフィルタリングを行う機能であると解説してきました。しかし、通信要件に合わせてポリシーを新規作成したり、既存のポリシーを変更したりしたい場合もあります。

 ポリシーを新規作成する場合は、本連載第49回で紹介した「New-NetFirewallRule」コマンドレットを使用しますが、既存のポリシーを変更する場合は今回解説するSet-NetFirewallRuleコマンドレットを使用します。

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

Set-NetFirewallRule [オプション]


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

オプション 意味
-DisplayName 変更したいポリシーの表示名を指定する。「-DisplayGroup」オプション指定時には省略可能
-Name 変更したいポリシー名を指定する。省略可能
-Group 変更したいポリシーグループを指定する。省略可能
-DisplayGroup 変更したいポリシーグループの表示名を指定する。「-DisplayName」オプション指定時には省略可能
-LocalAddress 変更後のローカルコンピュータアドレスの値を指定する。省略可能
-RemoteAddress 変更後のリモートコンピュータアドレスの値を指定する。省略可能
-Protocol 変更後のプロトコル(TCP/UDP/ICMPなど)を指定する。省略可能
-LocalPort 変更後のローカルコンピュータのポート番号を指定する。省略可能
-RemotePort 変更後のリモートコンピュータのポート番号を指定する。省略可能
-Direction 変更後のポリシーの方向(Inbound《受信》/Outbound《送信》)を指定する。省略可能
-Action 変更後のポリシーのアクション(Allow《許可》/Block《拒否》)を指定する。省略可能


既存のポリシーのリモートアドレスを取得する

 既存のポリシーを変更するには、Set-NetFirewallRuleコマンドレットを変更するポリシーを特定する「-DisplayName」オプションを指定して実行します。今回の場合は、リモートアドレスを「192.168.0.10」へ変更します(画面1)。なお、Set-NetFirewallRuleコマンドレットは管理者権限で実行する必要があります。

コマンドレット実行例

Set-NetFirewallRule -DisplayName TestPolicy -RemoteAddress "192.168.0.10"

画面1 画面1 既存のポリシー「TestWeb_8080」のリモートアドレスを「192.168.0.10」へ変更した

 コマンドレット実行前後で「Get-NetFirewallAddressFilter」コマンドレットを使用してリモートアドレスの設定内容を確認していますが、指定通りに変更されていることが分かります。

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

コマンドレット実行例

Get-NetFirewallRule -DisplayName TestPolicy | Set-NetFirewallRule -RemoteAddress "192.168.0.10"

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


グループ単位でポリシーを有効化する

 「-DisplayGroup」オプションを使用することで、グループ単位でのポリシーを変更することが可能です。

 以下の実行例では、ポリシーグループ「Windows Defender ファイアウォール リモート管理」に属するポリシーに対して、「-Enabled」オプションを使用して一括有効化処理を実施します(画面3)。

コマンドレット実行例

Set-NetFirewallRule -DisplayGroup "Windows Defender ファイアウォール リモート管理" -Enabled True

画面3 画面3 「-DisplayGroup」オプションを使用して、グループ単位で変更した

 コマンドレット実行前後のGet-NetFirewallRuleコマンドレットで、グループ内の各ポリシーが全て変更されていることが確認できます。

 なお、「-Enable」オプションを使用してポリシーを有効化しましたが、「Enable-NetFirewallRule」コマンドレットを利用しても同じ処理を実施できます(画面4)。目的と処理内容に応じて使い分けてください。

コマンドレット実行例

Enable-NetFirewallRule -DisplayGroup "Windows Defender ファイアウォール リモート管理"

画面4 画面4 「Enable-NetFirewallRule」コマンドレットでポリシーを有効化した

筆者紹介

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

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


Copyright © ITmedia, Inc. All Rights Reserved.

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

注目のテーマ

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

RSSについて

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

メールマガジン登録

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