.net 在Windows 7上使用Powershell删除防火墙规则
我正在Windows7上使用防火墙,我想删除而不是禁用现有的规则,我想知道如何做到这一点。要禁用,我正在执行以下操作:.net 在Windows 7上使用Powershell删除防火墙规则,.net,powershell,.net,Powershell,我正在Windows7上使用防火墙,我想删除而不是禁用现有的规则,我想知道如何做到这一点。要禁用,我正在执行以下操作: function Disable-IncomingFirewallRule($ruleName) { $firewall = New-Object -ComObject hnetcfg.fwpolicy2 try { $rule = $firewall.Rules.Item($ruleName) $rule.Enable
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
模块的and不是一个选项,因为它们只在windows8上工作
我到处寻找一些东西来告诉我如何做到这一点,但都没有找到。任何帮助都将不胜感激 使用
netsh
:
netsh advfirewall firewall delete rule name="$ruleName"
使用
netsh
:
netsh advfirewall firewall delete rule name="$ruleName"
对不起,我现在无法对最后一个答案添加评论 您的问题已解决,但可能有人患有其他疾病: 请注意,完整的advfirewall命令仅在NT6.0及更高版本(Vista及更高版本)中可用。 如果您有较旧的客户端,则语法为:
netsh firewall delete allowedprogram "program name"
(这是为了删除程序规则,我没有以其他方式使用它)对不起,我现在无法在最后一个答案中添加注释 您的问题已解决,但可能有人患有其他疾病: 请注意,完整的advfirewall命令仅在NT6.0及更高版本(Vista及更高版本)中可用。 如果您有较旧的客户端,则语法为:
netsh firewall delete allowedprogram "program name"
(这是用来删除程序规则的,我没有以其他方式使用过)谢谢。我没有意识到
netsh
在Windows7上工作。我以为它只能在Windows8上运行。伟大的回答顺便说一句!简单、正确、高效。谢谢。我没有意识到netsh
在Windows7上工作。我以为它只能在Windows8上运行。伟大的回答顺便说一句!简单、正确、高效。