2013-07-31 103 views
1

我正在使用Windows 7上的防火牆,我想刪除,不禁用現有的規則,我想知道如何做到這一點。要禁用,我做的:刪除防火牆規則在Windows 7上使用Powershell

function Disable-IncomingFirewallRule($ruleName) 
{ 
    $firewall = New-Object -ComObject hnetcfg.fwpolicy2 

    try 
    { 
     $rule = $firewall.Rules.Item($ruleName) 
     $rule.Enabled = $false 
     Write-Host "Firewal rule disabled" 
    } 
    catch 
    { 
     Write-Host -ForegroundColor Red "Rule does not exist" 

    } 

但在此之後,該規則仍然存在,當我跑了好幾次,我都會有一些禁用的規則,這就是爲什麼我要刪除它們。

不幸的是使用和NetSecurity模塊是不是一種選擇,因爲窗口8.

這些只是工作,我必須尋找高和低的東西來告訴我如何做到這一點,不過既然來了短。任何幫助將不勝感激。

回答

2

使用netsh

netsh advfirewall firewall delete rule name="$ruleName" 
+0

謝謝。我沒有意識到'netsh'在Windows 7上工作。我認爲它只適用於Windows 8.很好的答案btw!簡單,正確,高效。 – BlackHatSamurai

1

對不起,我不能添加評論此刻的最後答案。

你的問題就解決了,但有可能是人與其他條件:

謹防全advfirewall的命令(Vista和向上)只能在NT6.0及更高版本。 如果你有舊版本客戶端,語法是:

netsh firewall delete allowedprogram "program name" 

(即刪除程序規則,我也沒有以其他方式使用它)

相關問題