PowerShell を使用して Windows ファイアウォール ルールを管理する方法
Windows Defender ファイアウォールは、すべての Windows コンピューターにプレインストールされています。Windows ファイアウォールでは、特定のアプリケーションによるインターネットへのアクセスのブロックなど、さまざまな目的のルールを作成できます。この記事では、 PowerShell を使用して Windows ファイアウォール ルールを管理する方法を説明します。
PowerShell を使用して Windows ファイアウォール ルールを管理する方法
Windows Defender ファイアウォールと Advanced Security UI を使用して、 Windows ファイアウォールルールを簡単に構成できます。コントロール パネルから起動できます。PowerShell を使用して Windows ファイアウォール ルールを管理できるようになりました。この記事では、その方法を説明します。
PowerShell を通じて Windows ファイアウォールのルールを管理するには、 NetSecurity モジュールの一部であるNetFirewallRuleコマンドレットを使用する必要があります。Windows PowerShell で次のコマンドを実行すると、すべての NetSecurity コマンドレットを表示できます。
Get-Command -Module NetSecurity
Windows PowerShell には次の 3 種類のプロファイルがあります。
- ドメインプロファイル
- プライベートプロフィール
- 公開プロフィール
デフォルトでは、Windows ファイアウォールはこれら 3 つのプロファイルすべてに対してオンのままです。これを表示するには、コントロール パネルから Advanced Security UI を備えた Windows Defender ファイアウォールを開くか、[ファイル名を指定して実行] コマンド ボックスで次のコマンドを使用します。
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
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
ファイアウォール ルールに説明を追加したくない場合は、上記のコマンドから -Description 「Chrome ブラウザがブロックされました」の部分を削除できます。上記のコマンドは、パブリック プロファイルに対してのみ機能します。したがって、ネットワーク接続プロファイルがパブリックでない場合、このコマンドは機能しません。WiFi 接続のプロファイルは Windows の設定で確認できます。次の手順がこれに役立ちます。
- Windows 11/10の設定を開きます。
- [ネットワークとインターネット] > [Wi-Fi]に移動します。
- インターネット接続を選択します。
- ネットワーク接続の[プロパティ]タブを展開します。
そこにネットワーク プロファイル タイプが表示されます。
すべてのネットワーク プロファイルに対して 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
上記の各コマンドレットでは、ファイアウォール ルールの正しい名前を入力する必要があります。「Block Chrome」という名前のファイアウォール ルールを作成し、それを削除したいとします。その場合、コマンドは次のようになります。
Remove-NetFirewallRule -DisplayName 'Block Chrome'
PowerShell で Windows ファイアウォール ルールを表示するにはどうすればよいですか?
Windows ファイアウォールで作成した送信ブロック ルールを表示するには、次のコマンドを使用する必要があります。
Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound
上記のコマンドは、アクティブなファイアウォール ルールのみを一覧表示します。無効になっているファイアウォール ルールを表示する場合は、上記のコマンドの True を False に置き換えます。
それでおしまい。これがお役に立てば幸いです。
PowerSell でファイアウォール ルールを設定するにはどうすればよいですか?
さまざまな NetFirewallRule コマンドレットを使用して、PowerShell でファイアウォール ルールを設定できます。たとえば、新しいファイアウォール ルールを作成する場合は、New-NetFirewallRule コマンドレットを使用する必要があります。
コメントを残す