您的位置:首页 > 理论基础 > 计算机网络

网络程序如何通过无法配置的windows防火墙

2009-07-02 14:31 330 查看
前些日子,做了一个程序,需要部署在单位的某台电脑上,结果装好后发现xp防火墙阻拦,无法远程管理程序。但这台电脑的xp防火墙无法配置,打开防火墙的时候会提示:“由于不可识别问题windows无法显示windows防火墙设置”,百度了一个解决方法:

原文地址:http://support.microsoft.com/?scid=kb;zh-cn;920074
症状
安装 Windows XP Service Pack 2 (SP 2) 后, 您无法启动 Windows 防火墙服务。 特别, 您会遇到一个或多种以下症状: • 在 服务 列表控制面板中不显示 Windows 防火墙 / Internet 连接共享 (ICS) 。
• 在 服务 列表, 显示 Windows 防火墙 / Internet 连接共享 (ICS) 但无法启动此服务。
• 当您尝试访问 Windows 防火墙设置收到以下错误信息: 由于对一个识别问题, Windows 无法显示 Windows 防火墙设置。

原因
此问题是由 SharedAccess.reg 文件丢失或损坏。 SharedAccess.reg 文件代表了 Windows 防火墙服务。

注意 : Windows 防火墙服务在 Windows XP SP 2 替换在早期版本的 WindowsXP 中 Internet 连接防火墙 (ICF) 服务。

解决方案
要解决此问题, 使用下列方法之一。

方法 1: 调用 " 安装 API InstallHinfSection " 函数以安装 Windows 防火墙
要安装 Windows 防火墙, 请按照下列步骤: 1. 单击 开始 , 单击 运行 , 类型 cmd然后单击 确定 。
2. 在命令提示符下, 键入以下命令行, 然后按 ENTER 键: Rundll32 setupapi,InstallHinfSection Ndi-Steelhead 132 %windir%\inf\netrass.inf
3. 重新启动 Windows,
4. 单击 开始 , 单击 运行 , 类型 cmd然后单击 确定 。
5. 在命令提示符, 键入以下命令, 然后按 ENTER 键: Netsh firewall reset
6. 单击 开始 , 单击 运行 , 类型 firewall.cpl然后按 ENTER 键 。 在 Windows 防火墙 对话框, 单击 On (推荐) , 并单击 确定 。

方法 2: Windows 防火墙项添加到注册表
警告 如果正确修改注册表通过注册表编辑器或通过其他方法可能发生 Serious 问题。 这些问题可能需要重新安装操作系统。 Microsoft 不能保证能够解决这些问题而。 修改注册表需要您自担风险。

要将 Windows 防火墙项添加到注册表, 请按照下列步骤操作: 1. 将以下文本复制到记事本, 然后再保存文件作为 Sharedaccess.reg:
Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess]
"DependOnGroup"=hex(7):00,00
"DependOnService"=hex(7):4e,00,65,00,74,00,6d,00,61,00,6e,00,00,00,57,00,69,00,\
6e,00,4d,00,67,00,6d,00,74,00,00,00,00,00
"Description"="Provides network address translation, addressing, name resolution and/or intrusion prevention services for a home or small office network."
"DisplayName"="Windows Firewall/Internet Connection Sharing (ICS)"
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
"ObjectName"="LocalSystem"
"Start"=dword:00000002
"Type"=dword:00000020

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Epoch]
"Epoch"=dword:00002cd0

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters]
"ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
69,00,70,00,6e,00,61,00,74,00,68,00,6c,00,70,00,2e,00,64,00,6c,00,6c,00,00,\
00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\AuthorizedApplications]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\AuthorizedApplications\List]
"%windir%\\system32\\sessmgr.exe"="%windir%\\system32\\sessmgr.exe:*:enabled:@xpsp2res.dll,-22019"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List]
"%windir%\\system32\\sessmgr.exe"="%windir%\\system32\\sessmgr.exe:*:enabled:@xpsp2res.dll,-22019"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Setup]
"ServiceUpgrade"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Setup\InterfacesUnfirewalledAtUpdate]
"All"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Enum]
"0"="Root\\LEGACY_SHAREDACCESS\\0000"
"Count"=dword:00000001
"NextInstance"=dword:00000001

2. 双击 Sharedaccess.reg 将此文件的内容合并到注册表并可创建防火墙项。
3. 重新启动 Windows。
4. 单击 开始 , 单击 运行 , 类型 cmd然后单击 确定 。
5. 【LGF注:可能会丢失防火墙设置吧?】在命令提示符, 键入以下命令, 然后按 ENTER 键:Netsh firewall reset
6. 单击 开始 , 单击 运行 , 类型 firewall.cpl然后单击 确定 。
7. 配置与要使用 Windows 防火墙设置
按照上面操作还是一样的故障。没办法,只能在开着防火墙的情况下用其他方式让程序过防火墙了,于是想到netsh firewall命令,命令介绍如下:

add - 添加防火墙配置。
delete - 删除防火墙配置。
dump - 显示一个配置脚本。
help - 显示命令列表。
reset - 将防火墙配置重置为默认值。
set - 设置防火墙配置。
show - 显示防火墙配置。

add allowedprogram - 添加防火墙允许的程序配置。

add allowedprogram
[ program = ] path
[ name = ] name
[ [ mode = ] ENABLE|DISABLE
[ scope = ] ALL|SUBNET|CUSTOM
[ addresses = ] addresses
[ profile = ] CURRENT|DOMAIN|STANDARD|ALL ]

添加防火墙允许的程序配置。

参数:

program - 程序路径和文件名。

name - 程序名。

mode - 程序模式(可选)。
ENABLE - 允许通过防火墙(默认值)。
DISABLE - 不允许通过防火墙。

scope - 程序范围(可选)。
ALL - 允许所有流量通过防火墙(默认值)。
SUBNET - 只允许本地网络(子网)流量通过防火墙。
CUSTOM - 只允许指定的流量通过防火墙。

addresses - 自定义范围地址(可选)。
以逗号分隔的范围可以包含 IPv4 地址、
IPv6 地址、子网、范围或关键字 LocalSubnet。

profile - 配置的配置文件(可选)。
CURRENT - 应用于活动的配置文件。活动的配置文件可以是域、标准(即专用)
或公用。(默认值)。
DOMAIN - 应用于域配置文件。
STANDARD - 应用于标准(即专用)配置文件。
ALL - 应用于域和标准(即专用)配置文件。
不应用于公用配置文件。

注释: "scope" 必须为 "CUSTOM" 以指定 "addresses"。
"addresses" 不能包含未指定或环回地址。

示例:

add allowedprogram C:\MyApp\MyApp.exe "My Application" ENABLE
add allowedprogram C:\MyApp\MyApp.exe "My Application" ENABLE CUSTOM
157.60.0.1,172.16.0.0/16,10.0.0.0/255.0.0.0,
12AB:0000:0000:CD30::/60,LocalSubnet
add allowedprogram program=C:\MyApp\MyApp.exe name="My Application"
mode=DISABLE
add allowedprogram program=C:\MyApp\MyApp.exe name="My Application"
mode=ENABLE scope=CUSTOM addresses=157.60.0.1,
172.16.0.0/16,10.0.0.0/255.0.0.0,
12AB:0000:0000:CD30::/60,LocalSubnet

于是在CMD里敲入:netsh firewall add allowedprogram "C:\Program Files\XXXXXX\xxxxxxx.exe" "xxxxxxx" ENABLE
搞定
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 休闲
相关文章推荐