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

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

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

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

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

Windows Defender ファイアウォールと Advanced Security UI を使用して、 Windows ファイアウォールルールを簡単に構成できます。コントロール パネルから起動できます。PowerShell を使用して Windows ファイアウォール ルールを管理できるようになりました。この記事では、その方法を説明します。

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

Get-Command -Module NetSecurity

すべての NetSecurity コマンドレット

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

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

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

wf.msc

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

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

Get-NetFirewallProfile -Name <name of the profile>

Windows ファイアウォール プロファイル設定の表示

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

Get-NetFirewallProfile -Name Domain

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

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

Set-NetFirewallProfile -All -Enabled False

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

Windows ファイアウォールのパブリック プロファイル PowerShell を無効にする

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

Set-NetFirewallProfile -Profile Public -Enabled False

Windows ファイアウォール プロファイルのステータスを確認する

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

Get-NetFirewallProfile | Format-Table Name, Enabled

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

Windows ファイアウォールのパブリック プロファイルを無効にする

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

Set-NetFirewallProfile -Profile Public -Enabled True

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

Set-NetFirewallProfile -All -Enabled True

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 ファイアウォール プロファイルに置き換えます。表示名はファイアウォール ルールの名前で、説明はオプションです。

PowerShell を使用して 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

ファイアウォール ルールに説明を追加したくない場合は、上記のコマンドから -Description 「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 PowerShell を使用したファイアウォール ルールの有効化、無効化、および削除

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

Enable-NetFirewallRule Disable-NetFirewallRule Remove-NetFirewallRule

ファイアウォール ルールを削除する PowerShell

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

Remove-NetFirewallRule -DisplayName 'Block Chrome'

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

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

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

Windows ファイアウォール ルールの表示 PowerShell

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

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

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

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です