您现在的位置: 主页 > 物联网技术 > 在防火墙的例外中注册程序(Windows7和XP),改写注册表
本文所属标签:
为本文创立个标签吧:

在防火墙的例外中注册程序(Windows7和XP),改写注册表

来源:网络整理 网络用户发布,如有版权联系网管删除 2018-07-26 

在写程序的时候,经常遇到被防火墙拦截的情况,尤其是一些网络程序,不管是对外访问还是外部连接,都会被拦截。

在大多情况下,Windows会静默拦截外部对内的连接访问,而内部对外的访问会提示用户信息。

现在我们需要把自己的程序加入到防火墙的例外之中去,好让程序之间能够正常通信。

第一种方法是读写注册表的方式:

XP下是这几个键值(有的时候貌似只用2个键就行,但情况不同,最保险的方式是这4个键都写):

[c-sharp]view plaincopy
  1. 1.HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/SharedAccess/Parameters/FirewallPolicy/StandardProfile/AuthorizedApplications/List
  2. 2.HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/SharedAccess/Parameters/FirewallPolicy/StandardProfile/AuthorizedApplications/List
  3. 3.
  4. 4.HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/SharedAccess/Parameters/FirewallPolicy/DomainProfile/AuthorizedApplications/List
  5. 5.HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/SharedAccess/Parameters/FirewallPolicy/DomainProfile/AuthorizedApplications/List

而在Window7下略有不同,是这几个键:

[c-sharp]view plaincopy
  1. 1.HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/services/SharedAccess/Parameters/FirewallPolicy/FirewallRules
  2. 2.HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/services/SharedAccess/Defaults/FirewallPolicy/FirewallRules
  3. 3.HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/SharedAccess/Defaults/FirewallPolicy/FirewallRules
  4. 4.HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/SharedAccess/Parameters/FirewallPolicy/FirewallRules

第二种方式是使用命令操作,这种方式保险性最高,适用性也高:

同样在XP下的命令:

[c-sharp]view plaincopy
  1. 1.netshfirewalladdallowedprogram//增加例外

而在Window7下这个命令虽然也可以,可系统提示不要使用这个,于是换成这个更保险(由于系统UAC的缘故):

[c-sharp]view plaincopy
  1. 1.netshadvfirewallfirewall

其中的选项可以选择(XP和win7相同,但具体用法略有不同):

[c-sharp]view plaincopy
  1. 1.?-显示命令列表。
  2. 2.add-添加防火墙配置。
  3. 3.delete-删除防火墙配置。
  4. 4.dump-显示一个配置脚本。
  5. 5.help-显示命令列表。
  6. 6.reset-将防火墙配置重置为默认值。
  7. 7.set-设置防火墙配置。
  8. 8.show-显示防火墙配置。
  9. 9.若需要命令的更多帮助信息,请键入命令,
  10. 10.后面跟?。

具体使用可以直接敲入命令,会显示帮助信息,帮助中带有示例程序。

所以,你可以再你的程序中这么使用:

[c-sharp]view plaincopy
  1. “cmd.exe/s/c“netshadvfirewallfirewalladdrulename=/"MySQL/"dir=inprogram=/"G://ProgramFiles//MySQL//mysql//bin//mysql.exe/"security=authnoencapaction=allow/””//win7下添加mysql到防火墙例外中

在支持脚本的安装程序中,也可以直接调用,比如在winXP下,使用NSIS做安装包这么写:

[c-sharp]view plaincopy
  1. nsExec::ExecToLog'netshadvfirewallfirewalladdrulename="MySQL"dir=inprogram="$PROGRAMFILES/MySQL/mysql/bin/mysql.exe"action=allow'

可以达到同样效果。

对于删除和修改,可以查看这个命令的帮助:

[c-sharp]view plaincopy
  1. 1.C:/DocumentsandSettings/Administrator>netshfirewalldelete
  2. 2.下列指令有效:
  3. 3.此上下文中的命令:
  4. 4.deleteallowedprogram-删除防火墙允许的程序配置。
  5. 5.deleteportopening-删除防火墙端口配置。
  6. 6.C:/DocumentsandSettings/Administrator>

然后根据里面的说明和详细例子去使用。

http://blog.csdn.net/blpluto/article/details/5979684



              查看评论 回复



嵌入式交流网主页 > 物联网技术 > 在防火墙的例外中注册程序(Windows7和XP),改写注册表
 命令 程序 防火墙

"在防火墙的例外中注册程序(Windows7和XP),改写注册表"的相关文章

网站地图

围观()