簡體   English   中英

如何刪除大量防火牆規則(Windows server 2019)?

[英]How to delete huge number of firewall rules (Windows server 2019)?

我有 12 台服務器(會話主機),每台服務器上都有數萬條防火牆規則。 規則在用戶登錄時創建,系統在注銷時不會刪除它們(可能是 WS2016 中已修復的錯誤,但在 2019 年又出現了)。

我曾嘗試使用 powershell 的Remove-NetFirewallRule刪除規則,但由於性能原因沒用。 刪除 40k 條規則需要 33 小時(每分鍾 20 條規則)。 現在我正在嘗試使用 .netsh.exe 來實現它,它更快(每分鍾 1000 條規則),但我無法找到如何過濾掉配置文件中帶有“任何”的規則(我想保留這些規則) .

我試過用powershell過濾規則,然后推送到.netsh:

$rulesToRemove = Get-NetFirewallRule | where {$_.profile -ne "Any"} | select displayName

foreach($rule in $rulesToRemove) { netsh advfirewall firewall delete rule name=$rule }

它對某些規則有效,對其他規則無效——“沒有規則符合特定條件”。 我嘗試推送 displayName、name 和其他幾個值,但大多數規則根本不符合條件。 這里唯一的條件是 fw 規則名稱,所以我嘗試使用 .netsh 獲取名稱,例如我得到了這樣的東西:

@{Microsoft.Windows.Cortana_1.11.6.17763_neutral_neutral_cw5n1h2txyewy?mc-resource://Microsoft.Windows.Cortana/resources/PackageDisplayName}

甚至這也不適用於 .netsh 作為規則名稱:(。

問題:有沒有辦法在合理的時間內通過腳本刪除數萬條防火牆規則?

就像 Bill_Stewart 說的,你也可以點引用它。

$rulesToRemove = (Get-NetFirewallRule | where {$_.profile -eq "Any"}).DisplayName
foreach($rule in $rulesToRemove) { netsh advfirewall firewall delete rule name=$rule }

這個腳本將刪除其中的大部分; 如果它們具有相似的名稱,只需添加其余部分。 這並不花哨,但它有效。 remove-command 搜索進出防火牆列表並刪除所有與顯示名稱匹配的內容。 定期運行它,它不會使用很多資源:

    Write-Host '*** Deleting: '
    remove-netfirewallrule -DisplayName "Your account" 
    remove-netfirewallrule -DisplayName "Work or school account"
    remove-netfirewallrule -DisplayName "cortana"
    remove-netfirewallrule -DisplayName "SmartScreen"
    remove-netfirewallrule -DisplayName "Windows Default Lock Screen"
    remove-netfirewallrule -DisplayName "Windows Shell Experience"
    remove-netfirewallrule -DisplayName "Xbox Game UI"
    remove-netfirewallrule -DisplayName "Email and accounts"

一旦你刪除了孤立的規則,就有一個 reg edit 來阻止這種情況的發生。

解決了由於大量 Windows 防火牆規則而降低服務器性能或導致服務器停止響應的問題。 要啟用此解決方案,請使用 regedit 修改以下內容並將其設置為 1:

Type: “DeleteUserAppContainersOnLogoff” (DWORD)
Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM