Rya*_*yth 14 inno-setup windows-firewall
我需要为我正在编写的应用程序打开出口连接的Windows防火墙.
我能找到的最佳答案在这里:
http://www.shafqatahmed.com/2008/01/controlling-win.html
http://www.vincenzo.net/isxkb/index.php?title=Adding_a_rule_to_the_Windows_firewall
问题是该方法仅创建入站规则,而不是出站规则.(C#和InnoSetup脚本都使用相同的方法.)这对我来说完全没用.
Windows防火墙的默认行为是允许出站流量,但这并不能保证有人不会更改它.
我宁愿在安装程序(使用InnoSetup)中执行此操作,而不是在C#中执行此操作.
我错过了什么?
有谁知道如何创建出站规则?
xia*_*ose 23
如果需要为应用程序添加一些例外,可以使用netsh.
在命令行中写入(对于XP):
netsh firewall add allowedprogram ?
Run Code Online (Sandbox Code Playgroud)
在命令行中写入(对于W7):
netsh advfirewall firewall add rule ?
Run Code Online (Sandbox Code Playgroud)
这种差异因为netsh firewall命令已被弃用.相反,我们必须使用命令netsh advfirewall firewall.
有关使用命令netsh advfirewall firewall而不是netsh firewall命令的更多信息,我们可以在知识库中看到:http://go.microsoft.com/fwlink/?linkid = 121488
例子:
为messenger.exe添加没有安全封装的传入流量规则:
netsh advfirewall firewall add rule name="allow messenger" dir=in program="c:\programfiles\messenger\msmsgs.exe" security=authnoencap action=allow
Run Code Online (Sandbox Code Playgroud)
在端口80上为传出流量添加规则:
netsh advfirewall firewall add rule name="allow80" protocol=TCP dir=out localport=80 action=block
Run Code Online (Sandbox Code Playgroud)
通过端口80为TCP提供安全和流量加密的入站流量规则:
netsh advfirewall firewall add rule name="Require Encryption for Inbound TCP/80" protocol=TCP dir=in localport=80 security=authdynenc action=allow
Run Code Online (Sandbox Code Playgroud)
TechNet 的作用:在 Windows 7、Windows Vista、Windows Server 2008 或 Windows Server 2008 R2 上创建出站端口规则
尽管我假设您打算以编程方式创建此类规则,但如果是这样,您可能会对以编程方式使用组策略对象感兴趣。
最后,如果您计划在安装期间执行此操作,InnoSetup 应该能够在安装时合并必要的注册表项。
| 归档时间: |
|
| 查看次数: |
25308 次 |
| 最近记录: |