PowerShell操作Windows高级防火墙

 注释简单,你懂的,因为懒,想学的话逐条执行一次就知道个大概!

// 打开防火墙界面 wf.msc
// 不含空格字符串的双引号可省略,例:-DisplayName "Newrule" 可以写成 -DisplayName Newrule
// 添加规则,参数 -Name 可省略
New-NetFirewallRule -DisplayName "Newrule" -Direction Inbound -Action Allow -LocalPort 21,1021-1022 -Protocol TCP

New-NetFirewallRule -DisplayName "Allow TCP 12345 and 5000-5020 over Teredo" -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol TCP -LocalPort 12345,5000-5020 -Program "C:\Program Files (x86)\TestIPv6App.exe"

New-NetFirewallRule -DisplayName "Allow Messenger" -Direction Inbound -Program "C:\Program Files (x86)\Messenger\msmsgs.exe" -RemoteAddress LocalSubnet -Action Allow

New-NetFirewallRule -DisplayName "Newrule" -Direction Inbound -Action Allow -LocalPort 1021 -Protocol TCP -RemoteAddress "192.168.1.0/24"

New-NetFirewallRule -Name "Newrule" -DisplayName "Newrule" -Direction Inbound -Action Allow -LocalPort 1021 -Protocol TCP -RemoteAddress "192.168.1.0/24","192.168.0.0/24"

// 显示指定规则中的地址筛选
Get-NetFirewallRule -DisplayName Newrule | Get-NetFirewallAddressFilter
// 显示指定规则中的端口筛选
Get-NetFirewallRule -DisplayName Newrule | Get-NetFirewallPortFilter

// 修改指定规则
Set-NetFirewallRule -DisplayName "Newrule" -LocalPort 21
Set-NetFirewallRule -DisplayName "Newrule" -LocalPort 21,2121
Set-NetFirewallRule -DisplayName "Newrule" -RemoteAddress "192.168.1.1"
Set-NetFirewallRule -DisplayName "Newrule" -RemoteAddress "192.168.1.0/24"
Set-NetFirewallRule -DisplayName "Newrule" -RemoteAddress "192.168.1.0/24","192.168.0.0/24"
Set-NetFirewallRule -DisplayName Newrule -RemoteAddress 192.168.2.0/24,192.168.3.0/24
// 修改指定规则中的本地端口,不嫌麻烦的可以用!
$filter=Get-NetFirewallRule -DisplayName "Newrule" | Get-NetFirewallPortFilter; Set-NetFirewallPortFilter -LocalPort 80 -InputObject $filter
// 修改指定规则中的本地端口
Get-NetFirewallRule -DisplayName "Newrule" | Get-NetFirewallPortFilter | Set-NetFirewallPortFilter -LocalPort 1080

// 启用指定规则
Set-NetFirewallRule -DisplayName "Newrule" -Enabled True
// 禁用指定规则
Set-NetFirewallRule -DisplayName "Newrule" -Enabled False

// 启用指定规则,语法比上边的简洁
Enable-NetFirewallRule -DisplayName "Newrule"
Enable-NetFirewallRule -DisplayGroup "组名称"

// 禁用指定规则
Disable-NetFirewallRule -DisplayName "Newrule"

// 删除指定规则
Remove-NetFirewallRule -DisplayName "Newrule"
Remove-NetFirewallRule -Name Newrule

// 官方帮助文档
// https://docs.microsoft.com/en-us/powershell/module/netsecurity/

官方帮助文档
https://docs.microsoft.com/en-us/powershell/module/netsecurity/

猜你喜欢

转载自blog.csdn.net/k83133058/article/details/111502107