PowerShell を使用して Windows ファイアウォール ルールを管理する方法

Windows Defender ファイアウォールは、すべての Windows コンピューターにプレインストールされています。 Windows ファイアウォールでは、次のようなさまざまな目的のルールを作成できます。特定のアプリケーションがインターネットにアクセスできないようにブロックする。この記事では管理方法を示しますPowerShell を使用した Windows ファイアウォールのルール

PowerShell を使用して Windows ファイアウォール ルールを管理する方法

簡単にできますWindows ファイアウォールを設定する経由のルールWindows Defender ファイアウォールと高度なセキュリティUI。コントロール パネルから起動できます。これからは、次のこともできますPowerShell を使用して Windows ファイアウォール ルールを管理する。この記事では、その方法を説明します。

PowerShell を通じて Windows ファイアウォールのルールを管理するには、ネットファイアウォールルールNetSecurity モジュールの一部であるコマンドレット。 Windows PowerShell で次のコマンドを実行すると、すべての NetSecurity コマンドレットを表示できます。

Get-Command -Module NetSecurity

Windows PowerShell には次の 3 種類のプロファイルがあります。

  • ドメインプロファイル
  • プライベートプロフィール
  • 公開プロフィール

デフォルトでは、Windows ファイアウォールはこれら 3 つのプロファイルすべてに対してオンのままです。これを開くと表示できます。高度なセキュリティを備えた Windows Defender ファイアウォールコントロール パネルを介して UI を実行するか、[ファイル名を指定して実行] コマンド ボックスで次のコマンドを使用します。

wf.msc

しなければならないことに注意してくださいWindows PowerShell を管理者として起動しますそうでない場合、コマンドは実行されず、PowerShell でエラーが発生します。

特定の Windows ファイアウォール プロファイルの設定を表示する場合は、次のコマンドを使用します。

Get-NetFirewallProfile -Name <name of the profile>

上記のコマンドでは、プロファイルの名前を正しく入力してください。たとえば、Windows Defender ファイアウォールのドメイン プロファイルの設定を表示する場合、コマンドは次のようになります。

Get-NetFirewallProfile -Name Domain

PowerShell を使用して Windows ファイアウォールを有効または無効にする

PowerShell を使用して Windows ファイアウォールを有効または無効にする方法を見てみましょう。すべてのプロファイルに対して Windows ファイアウォールを無効にする場合は、次のコマンドを使用します。

Set-NetFirewallProfile -All -Enabled False

特定のプロファイルに対して Windows ファイアウォールを有効または無効にする場合は、上記のコマンドの All をそのプロファイル名に置き換える必要があります。

たとえば、パブリック プロファイルの Windows ファイアウォールを無効にする場合、コマンドは次のようになります。

Set-NetFirewallProfile -Profile Public -Enabled False

次のコマンドを使用して、Windows ファイアウォール プロファイルのステータスを確認できます。

Get-NetFirewallProfile | Format-Table Name, Enabled

上のスクリーンショットでわかるように、PowerShell では Windows ファイアウォールのパブリック プロファイルのステータスが False として表示されており、これは Windows ファイアウォールがそのプロファイルに対して無効になっていることを意味します。

Advanced Security UI を備えた Windows Defender ファイアウォールでも同じことを確認できます。無効なプロファイルを有効にするには、False の代わりに True を使用する必要があります。たとえば、ここでは Windows ファイアウォールのパブリック プロファイルを無効にしています。ここで、再度有効にするには、コマンドは次のとおりです。

Set-NetFirewallProfile -Profile Public -Enabled True

すべての Windows Defender プロファイルを無効にし、すべてを再度有効にしたい場合は、次のコマンドを使用します。

Set-NetFirewallProfile -All -Enabled True

読む:Windows 向けの最高の無料ファイアウォール ソフトウェア

PowerShell を使用して Windows ファイアウォール ルールを作成および管理する

次に、PowerShell を使用して Windows ファイアウォール ルールを作成および管理する方法を見てみましょう。サードパーティ製のウイルス対策ソフトを使用している場合、ファイアウォールそのウイルス対策プログラムによって管理されている場合、PowerShell コマンドは機能しません。ルールは正常に作成できますが、ファイアウォールがサードパーティのウイルス対策ソフトウェアによって管理されている場合、これらのルールは機能しません。

新しい Windows ファイアウォール ルールを作成する場合は、次のコマンドレットを使用する必要があります。

New-NetFirewallRule

WiFi プロファイルでプログラムがインターネットにアクセスするのをブロックしたいとします。次のコマンドを使用します。

New-NetFirewallRule -Program “program path” -Action Block -Profile <profile name> -DisplayName “write display name here” -Description “write description here” -Direction Outbound

上記のコマンドは、Windows Defender ファイアウォールに必要なプログラムの送信ルールを作成します。上記のコマンドで、プログラムパスプログラムの正しいパスとプロフィール名正しい Windows ファイアウォール プロファイルを使用してください。表示名はファイアウォール ルールの名前で、説明はオプションです。

たとえば、プライベート プロファイルに対して Chrome ブラウザをブロックする場合、コマンドは次のようになります。

New-NetFirewallRule -Program “C:\Program Files\Google\Chrome\Application\chrome.exe” -Action Block -Profile Public -DisplayName “Block Chrome browser” -Description “Chrome browser blocked” -Direction Outbound

ファイアウォール ルールに説明を追加したくない場合は、-説明「Chrome ブラウザがブロックされました」上記のコマンドの一部です。上記のコマンドは、パブリック プロファイルに対してのみ機能します。したがって、ネットワーク接続プロファイルがパブリックでない場合、このコマンドは機能しません。 WiFi 接続のプロファイルは Windows の設定で確認できます。次の手順がこれに役立ちます。

  1. Windows 11/10の設定を開きます。
  2. に行くネットワークとインターネット > Wi-Fi
  3. インターネット接続を選択します。
  4. ネットワーク接続を拡張するプロパティタブ。

そこにネットワーク プロファイル タイプが表示されます。

すべてのネットワーク プロファイルに対して Google Chrome などのプログラムをブロックする場合は、すべてのプロファイル名をカンマで区切って入力します。したがって、コマンドは次のようになります。

New-NetFirewallRule -Program “C:\Program Files\Google\Chrome\Application\chrome.exe” -Action Block -Profile Domain, Private, Public -DisplayName “Block Chrome browser” -Description “Chrome browser blocked” -Direction Outbound

プロファイル名は、上記のコマンドで記述したとおりの順序 (つまり、ドメイン、プライベート、パブリック) で入力する必要があることに注意してください。そうしないと、エラーが発生します。

同様に、PowerShell を使用して Windows Defender ファイアウォールでルールを作成し、特定の Web サイトをブロックできます。ただし、そのためには、その特定の Web サイトの IP アドレスを知っておく必要があります。次のコマンドを使用して、Web サイトの IP アドレスを取得できます。

nslookup <website name>

ブロックしたい Web サイトに複数の IP アドレスが表示されている場合は、これらの IP アドレスをすべて記述する必要があります。すべての IP アドレスをカンマで区切ります。

Windows Defender ファイアウォールで Web サイトをブロックするルールを作成するために使用されるコマンドは次のとおりです。

New-NetFirewallRule -DisplayName "Block Website" -Description "Website Blocked" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress IP1, IP2

上の例は、特定の Web サイトの IP アドレスをカンマで区切る方法を示しています。

読む:Windows でファイアウォール経由の VPN を許可する方法

Windows PowerShell を使用したファイアウォール ルールの有効化、無効化、および削除

ファイアウォール ルールを有効、無効、または削除する場合は、PowerShell で次のコマンドレットを使用する必要があります。

Enable-NetFirewallRule
Disable-NetFirewallRule
Remove-NetFirewallRule

上記の各コマンドレットでは、ファイアウォール ルールの正しい名前を入力する必要があります。次の名前のファイアウォール ルールを作成したとします。クロムをブロックするそれを削除したい場合、コマンドは次のようになります。

Remove-NetFirewallRule -DisplayName 'Block Chrome'

読む:Windows で Windows ファイアウォール サービスが開始されない

PowerShell で Windows ファイアウォール ルールを表示するにはどうすればよいですか?

Windows ファイアウォールで作成した送信ブロック ルールを表示するには、次のコマンドを使用する必要があります。

Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound

上記のコマンドは、アクティブなファイアウォール ルールのみを一覧表示します。無効になっているファイアウォール ルールを表示する場合は、上記のコマンドの True を False に置き換えます。

それでおしまい。これがお役に立てば幸いです。

読む: 方法重複した Windows ファイアウォール ルールを削除する

PowerSell でファイアウォール ルールを設定するにはどうすればよいですか?

さまざまな NetFirewallRule コマンドレットを使用して、PowerShell でファイアウォール ルールを設定できます。たとえば、新しいファイアウォール ルールを作成する場合は、新しい NetFirewallRuleコマンドレット。

次に読む:Windows ファイアウォール設定をデフォルトに復元またはリセットする方法