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

あなたがしたい場合は重複した Windows ファイアウォール ルールを削除する、この記事はあなたのためのものです。場合によっては、更新後、一部の構成後、または Windows コンピューターにプログラムをインストールした後、ファイアウォールによってルールが再作成されます。これはこれらのルールを手動で削除した後でも発生するため、非常に迷惑です。

Windows ファイアウォール ルールは、ネットワークへのアクセスを管理したいネットワーク管理者にとって不可欠です。これらのルールを使用すると、ネットワークに出入りするものを規制できます。たとえば、特定のファイルがネットワークに侵入するのを防ぐことができます。したがって、ルール自体が重複したり、削除後に再作成されたりすると、問題が発生します。最適な解決策を得るために読み続けてください。

Windows ファイアウォールでルールが重複するのはなぜですか?

PC にルールが重複している明確な理由はありません。ただし、特定の調整を行ったためにこの問題が発生する可能性がありますファイアウォールの設定または、最近インストールしたプログラムがファイアウォールの異常な動作を引き起こすためです。

Windows アップデート後にバグが発生する可能性を排除できず、PC に多くの問題が発生する可能性があります。 Windows のセキュリティ セクションに影響を与えるウイルスやマルウェアのインスタンスも存在する可能性があります。この問題を解決する方法を見てみましょう。

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

重複を削除したい場合Windows ファイアウォールl ルールを削除した場合、またはルールを削除した後に再作成された場合、トラブルシューティングの専門家は次の解決策を推奨します。

  1. 準備手順を実行する
  2. ルールを手動で削除する
  3. スクリプトを使用してルールを削除する

これらのソリューションを詳しく見てみましょう。

1] 準備手順を実行します

ルールの削除を開始する前に、ファイアウォールがポリシーを再作成または複製しないようにいくつかの回避策を実行することをお勧めします。次のことを実行します。

  • ファイアウォール設定を確認してください。場合によっては、間違った変更を加えた可能性があり、それが Windows ファイアウォール ルールの重複の原因である可能性があります。設定が正しく構成されていることを確認してください。
  • 一時的にできますサードパーティのウイルス対策ソフトウェアを無効にするまたは最近インストールしたその他のソフトウェア。そうでない場合は、プログラムを有効にするか再インストールしてください。
  • システムのアップグレードまたは更新後に問題が発生した場合は、次のことができます。以前のバージョンに戻すファイアウォールがルールの自動複製を停止したかどうかを確認します。

その後、以下でルールを削除する方法を検討できます。

2] ルールを手動で削除する

Windows ルールを手動で削除するには、次の手順に従います。

  • を検索してくださいWindows セキュリティ検索バーを使用してアプリを選択し、開ける
  • 見つけて選択するファイアウォールとネットワーク保護
  • ウィンドウの下部にある をクリックします。詳細設定。を取得します。アカウント制御を使用するプロンプト;選択するはい続けます。これにより、という名前の新しいウィンドウが開きます。高度なセキュリティを備えた Windows Defender ファイアウォール
  • 左側で、2 つのオプションを 1 つずつ選択できます。インバウンドルールそしてアウトバウンドルール
  • 次に、複製されたルールの 1 つをクリックし、Ctrlまたはシフトボタンをクリックして複数のルールを選択します。
  • 選択に満足したら、それらを右クリックして選択します。消去
  • アクションを確認するプロンプトが表示されます。クリックはい
  • 最後に、PC を再起動し、ルールが存在するかどうかを確認します。

それがうまくいく場合は、次のステップを試すことができます。

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

3] スクリプトを使用してルールを削除する

スクリプトを使用して、重複した Windows ファイアウォール ルールを削除することもできます。まず、スクリプトを Windows メモ帳に保存する必要があります。

開けるメモ帳次のコードをコピーして貼り付けます。スーパーユーザー

# Here we use `netsh advfirewall firewall show` to get all firewall rules, since it's way faster than Get-NetFirewallRule!!!!!!!
$output = (netsh advfirewall firewall show rule name=all verbose | Out-String).Trim() -split '\r?\n\s*\r?\n'
$propertyNames = [System.Collections.Generic.List[string]]::new()
$objects = @( $(foreach($section in $output ) {
$obj = @{}
foreach( $line in ($section -split '\r?\n') ) {
if( $line -match '^\-+$' ) { continue }
$name, $value = $line -split ':\s*', 2
$name = $name -replace " ", ""
$obj.$name = $value
if($propertyNames -notcontains $name) {
$propertyNames.Add( $name )
}
}
$obj
}) | % {
foreach( $prop in $propertyNames ) {
if( $_.Keys -notcontains $prop ) {
$_.$prop = $null
}
}
[PSCustomObject]$_
})
$r = $objects | Group-Object -Property RuleName, Program, Action, Profiles, RemoteIP, RemotePort, LocalIP, LocalPort, Enabled, Protocol, Direction
# If you want to take a look
# $r | ?{$_.Count -gt 1} | Select-Object -ExpandProperty group | Out-GridView
$r | ?{$_.Count -gt 1} | %{
$name = $_ | Select-Object -ExpandProperty group | Select-Object -ExpandProperty RuleName -First 1
# Here we have to use this cmdlet, since `netsh advfirewall firewall delete` can't differentiate rules with the same names and will delte them all!
Get-NetFirewallRule -DisplayName $name | Select-Object -Skip 1 | Remove-NetFirewallRule
}

ファイルに名前を付けて保存しますファイアウォール.ps1

次は開けることですWindows PowerShell管理者として、コマンド プロンプトとして firewall.ps1 ファイルのフォルダー パスを貼り付けます。それは次のようなものです。cd C:\ユーザー\<username> \ドキュメント

最後に、スクリプトのタイトルを入力します。つまり、ファイアウォール.ps1を押して、入力

スクリプトの実行が開始され、重複する Windows ファイアウォール ルールがすべて削除されます。

注記:別のスクリプトもありますレディット見てみることができます。

# firewall.ps1
# Get-NetFirewallRule >> x.txt to see what the empty paths are referencing.
ForEach($rule In Get-NetFirewallRule | Get-NetFirewallApplicationFilter) {
If(-not $rule.AppPath) { # UWP apps have no paths.
If($rule.CreationClassName.Substring(0, 22) -ne 'MSFT|FW|FirewallRule|{') { # Crude check for Windows 10 apps.
Write-Host 'REMOVING ID: ' $rule.InstanceID
Get-NetFirewallRule $rule.InstanceID | Remove-NetFirewallRule
#} else {
#Write-Host $rule.CreationClassName
#Get-NetFirewallRule $rule.InstanceID | Format-List Platform
}
} else { # Firewall rule contains a path.
If(-not (Test-Path $rule.AppPath) -and $rule.AppPath -ne 'System') { # Crude check for Windows 10 itself.
Write-Host 'REMOVING APP:' $rule.AppPath
Get-NetFirewallRule $rule.InstanceID | Remove-NetFirewallRule
}
}
}

一部のルールを削除すると、ネットワークおよび関連する構成に影響を与える可能性があります。これらの手順は慎重に実行してください。一部のルールは同じように見えますが、わずかな違いがあります。自分が何をしているのかわかっている場合は、それらを削除してください。

ここで価値あるものを見つけていただければ幸いです。

読む:Windows ファイアウォールが接続を妨げているかブロックしています

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

Windows でファイアウォール ルールを作成または作成するには、高度なセキュリティを備えた Windows ファイアウォールのオプションWindows セキュリティアプリを選択してインバウンドルールまたはアウトバウンドルール。クリックアクションを選択し、新しいルール。でルールの種類セクション、選択カスタムその後。画面上の指示に従って、ルールを必要に応じてカスタマイズします。

読む: Windows ファイアウォール制御 Windows ファイアウォール設定の構成および管理

Windows ファイアウォール ルールを無効にする方法

Windows ファイアウォール ルールを無効にするには、次の手順に進みます。Windows セキュリティアプリを選択してファイアウォールとネットワーク保護。下部にある をクリックします。詳細設定開く高度なセキュリティを備えた Windows Defender ファイアウォール。ここでどちらかを選択しますインバウンドルールまたはアウトバウンドルール。ルールの長いリストが表示されます。無効にするものを検索してクリックし、左側のペインで選択しますルールを無効にする。場合によっては、ルールを削除するよりも無効にする方が良い選択肢になることがあります。

読む:Windows ファイアウォールが接続を妨げているかブロックしています