如果程序在開啟了防火牆的計算機上運行,WINDOWS會彈出安全警報:防火牆阻止程序的某些聯網功能
,這無疑會降低最終用戶的使用體驗,那么,我們如何把程序添加到防火牆允許的程序列表中呢?
答案是:使用CMD命令!
命令:
netsh advfirewall firewall add rule
用法:
add rule name=<string> dir=in|out action=allow|block|bypass
[program=<program path>]
[service=<service short name>|any]
[description=<string>]
[enable=yes|no (default=yes)]
[profile=public|private|domain|any[,...]]
[localip=any|<IPv4 address>|<IPv6 address>|<subnet>|<range>|<list>]
[remoteip=any|localsubnet|dns|dhcp|wins|defaultgateway|<IPv4 address>|<IPv6
address>|<subnet>|<range>|<list>]
[localport=0-65535|<port range>[,...]|RPC|RPC-EPMap|IPHTTPS|any (default=any)]
[remoteport=0-65535|<port range>[,...]|any (default=any)]
[protocol=0-255|icmpv4|icmpv6|icmpv4:type,code|icmpv6:type,code|tcp|udp|any
(default=any)]
[interfacetype=wireless|lan|ras|any]
[rmtcomputergrp=<SDDL string>]
[rmtusrgrp=<SDDL string>]
[edge=yes|deferapp|deferuser|no (default=no)]
[security=authenticate|authenc|authdynenc|authnoencap|notrequired
(default=notrequired)]
備注:
- 將新的入站或出站規則添加到防火牆策略。
- 規則名稱應該是唯一的,且不能為 "all"。
- 如果已指定遠程計算機或用戶組,則 security 必須為authenticate、authenc、
authdynenc 或 authnoencap。
- 為 authdynenc 設置安全性可允許系統動態協商為匹配給定 Windows 防火牆規則的通信使
用加密。
根據現有連接安全規則屬性協商加密。
選擇此選項后,只要入站 IPSec 連接已設置安全保護,但未使用 IPSec 進行加密,計算機
就能夠接收該入站連接的第一個 TCP 或 UDP 包。
一旦處理了第一個數據包,服務器將重新協商連接並對其進行升級,以便所有后續通信都完
全加密。
- 如果 action=bypass,則 dir=in 時必須指定遠程計算機組。
- 如果 service=any,則規則僅應用到服務。
- ICMP 類型或代碼可以為 "any"。
- Edge 只能為入站規則指定。
- AuthEnc 和 authnoencap 不能同時使用。
- Authdynenc 僅當 dir=in 時有效。
- 設置 authnoencap 后,security=authenticate 選項就變成可選參數。
CMD示例:
為不具有封裝的 messenger.exe 添加入站規則:
netsh advfirewall firewall add rule name="allow messenger" dir=in program="c:
\programfiles\messenger\msmsgs.exe" security=authnoencap action=allow
為端口 80 添加出站規則:
netsh advfirewall firewall add rule name="allow80" protocol=TCP dir=out
localport=80 action=block
為 TCP 端口 80 通信添加需要安全和加密的入站規則:
netsh advfirewall firewall add rule name="Require Encryption for Inbound
TCP/80" protocol=TCP dir=in localport=80 security=authdynenc action=allow
為 messenger.exe 添加需要安全的入站規則:
netsh advfirewall firewall add rule name="allow messenger" dir=in program="c:
\program files\messenger\msmsgs.exe" security=authenticate action=allow
為 SDDL 字符串標識的組 acmedomain\scanners 添加經過身份驗證的防火牆跳過規則:
netsh advfirewall firewall add rule name="allow scanners" dir=in
rmtcomputergrp=<SDDL string> action=bypass security=authenticate
為 udp- 的本地端口 5000-5010 添加出站允許規則
Add rule name="Allow port range" dir=out protocol=udp localport=5000-5010
action=allow
===============================================================
netsh advfirewall firewall add rule name="大旗軟件自動升級" dir=in action=allow program="D:\ABC\Test.exe" service="大旗軟件" description="大旗軟件FTP自動升級使用" protocol=TCP
注意:千萬別加 service這一項,加了之后,只針對於指定的這一項服務生效,其它的無效
--刪除
netsh advfirewall firewall delete rule name="大旗軟件自動升級" protocol=TCP