PowerShell operating Windows Advanced Firewall

 The comments are simple, you know, because you are lazy, if you want to learn, you will know the general idea if you execute it one by one!

// 打开防火墙界面 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/

Official help document
https://docs.microsoft.com/en-us/powershell/module/netsecurity/

Guess you like

Origin blog.csdn.net/k83133058/article/details/111502107