如何刪除重複的 Windows 防火牆規則
如果您想刪除重複的 Windows 防火牆規則,這篇文章適合您。有時,防火牆會在更新後、進行某些設定後或在 Windows 電腦上安裝程式後重新建立規則。即使手動刪除這些規則後也會發生這種情況,這很煩人。
Windows 防火牆規則對於想要管理網路存取的網路管理員至關重要。透過這些規則,您可以規範進出我們網路的內容。例如,您可以阻止某些檔案進入您的網路。因此,如果規則重複或刪除後重新創建,就會出現問題。繼續閱讀以獲得最佳解決方案。
為什麼 Windows 防火牆會重複規則?
您的電腦出現重複規則沒有明顯的原因。但是,發生這種情況的原因可能是您調整了某些防火牆設定,或因為您最近安裝的某個程式導致防火牆行為異常。 防火牆設定一個>
我們不能排除 Windows 更新後出現錯誤的可能性,這可能會導致您的電腦出現許多問題。也可能存在影響您的 Windows 安全性部分的病毒或惡意軟體的情況。現在讓我們看看如何解決這個問題。
如何刪除重複的 Windows 防火牆規則
如果您想要刪除重複的Windows 防火牆規則,或刪除後重新建立規則,我們的故障排除專家建議使用下列解決方案:
- 執行初步步驟
- 手動刪除規則
- 使用腳本刪除規則
現在讓我們詳細看看這些解決方案。
1]執行預備步驟
在開始刪除規則之前,我們的專家建議您執行一些解決方法,以防止防火牆重新建立或複製您的策略。請執行下列操作:
- 檢查您的防火牆設定。有時,您可能做出了錯誤的更改,這可能是您重複 Windows 防火牆規則的原因。確保您的設定配置正確。
- 您可以暫時停用任何第三方防毒軟體或您最近安裝的任何其他軟體。如果不是這種情況,請啟用或重新安裝程式。
- 如果在升級或更新系統後出現問題,您可以還原到先前的版本並查看防火牆是否已停止複製您的系統自動規則。
之後,您現在可以探索以下刪除規則的方法
2]手動刪除規則
若要手動刪除 Windows 規則,請依照下列步驟操作:
- 使用搜尋列搜尋Windows Security應用,然後點選開啟 .
- 找到並選擇防火牆和防火牆網路保護.
- 在視窗底部,點選進階設定。您將收到使用帳戶控制提示;選擇是繼續。這將開啟一個名為「具有進階安全性的 Windows Defender 防火牆」的新視窗。
- 在左側,您可以一一選擇兩個選項:入站規則和出站規則。
- 接下來,點選重複的規則並使用Ctrl 或Shift< a i =4>按鈕選擇多個規則。
- 對您的選擇感到滿意後,右鍵單擊它們並選擇刪除。
- 您將收到確認操作的提示;點選是。
- 最後,重新啟動電腦並查看規則是否存在。
如果這有效,您可以嘗試下一步。
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 = $valueif($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}
將檔案另存為firewall.ps1。
接下來是以管理員身分開啟Windows PowerShell,然後將firewall.ps1檔案的資料夾路徑貼為命令提示字元。它是這樣的:cd C:\Users\<用戶名>\Documents。
最後,輸入腳本標題,即firewall.ps1,然後按Enter Enterfirewall.ps1 a>.
該腳本將開始運行並刪除所有重複的 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.InstanceIDGet-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.AppPathGet-NetFirewallRule $rule.InstanceID | Remove-NetFirewallRule}}}
刪除某些規則可能會影響您的網路和相關配置。請務必小心執行這些步驟。有些規則可能看起來相同,但有細微差別。如果您知道自己在做什麼,請將其刪除。
我們希望您在這裡找到有價值的東西。
如何在 Windows 中編寫防火牆規則?
要在Windows 中撰寫或建立防火牆規則,請在Windows 安全應用程式中開啟進階安全性Windows 防火牆選項,然後選擇入站規則或出站規則。點選操作,然後選擇新規則。在規則類型部分,選擇自訂,然後選擇 。按照螢幕上的指示按照您想要的方式自訂規則。下一步
如何停用 Windows 防火牆規則
要停用Windows 防火牆規則,請前往Windows 安全性套用並選擇防火牆和防火牆規則。網路保護。點選底部的進階設定開啟進階安全性 Windows Defender 防火牆。在此選擇入站規則或出站規則。您將看到一長串規則。搜尋您要停用的規則,按一下它,然後在左側窗格中選擇停用規則。在某些情況下,停用規則可能是比刪除規則更好的選擇。
發佈留言