首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制Windows防火墙规则(Netsh AdvFirewall防火墙)

复制Windows防火墙规则(Netsh AdvFirewall防火墙)
EN

Stack Overflow用户
提问于 2015-08-24 14:37:05
回答 5查看 8.7K关注 0票数 8

我注意到,当我们通过netsh advfirewall firewall创建防火墙规则时,它可以多次运行,创建多个相同的防火墙规则。

在尝试创建新规则之前,有没有检查防火墙规则是否存在的方法?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-08-24 15:36:14

我设法通过PowerShell的实现了这一点,下面的代码将检查指定的防火墙规则以及指定的本地端口,如果它找到了一个条目,它就不会创建规则。如果它找不到条目,它将创建规则。

代码语言:javascript
复制
$firewallPort = ""
$firewallRuleName = ""

write-host "Checking for '$firewallRuleName' firewall rule on port '$firewallPort' now...."
if ($(Get-NetFirewallRule –DisplayName $firewallRuleName | Get-NetFirewallPortFilter | Where { $_.LocalPort -eq $firewallPort }))
{
    write-host "Firewall rule for '$firewallRuleName' on port '$firewallPort' already exists, not creating new rule"
}
else
{
    write-host "Firewall rule for '$firewallRuleName' on port '$firewallPort' does not already exist, creating new rule now..."
    New-NetFirewallRule -DisplayName $firewallRuleName -Direction Inbound -Profile Domain,Private,Public -Action Allow -Protocol TCP -LocalPort $firewallPort -RemoteAddress Any
    write-host "Firewall rule for '$firewallRuleName' on port '$firewallPort' created successfully"
}
票数 5
EN

Stack Overflow用户

发布于 2016-07-11 13:03:46

检查规则"myrule“是否不存在

代码语言:javascript
复制
netsh advfirewall firewall show rule name="myrule" | findstr "no rules"
票数 5
EN

Stack Overflow用户

发布于 2019-07-16 08:43:51

为了扩展@Oleg的答案,下面是我使用的内容。换掉..。根据你的规则。

代码语言:javascript
复制
set name="my rule"
netsh advfirewall firewall show rule name=!name! >nul
if errorlevel 1 (
    echo Adding firewall rule !name!
    netsh advfirewall firewall add rule name=!name! ...
)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32185000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档