症状
安装 Microsoft Windows XP Service Pack 2 (SP2) 后,无法启动 Windows 防火墙服务。具体来说,您会遇到下列一个或多个症状:
“控制面板”中的“服务”列表中未显示“Windows 防火墙/Internet 连接共享(ICS)”。
虽然“服务”列表中显示了“Windows 防火墙/Internet 连接共享(ICS)”,但无法启动此服务。
试图访问 Windows 防火墙设置时,收到以下错误消息:
由于不可识别问题,Windows 无法显示 Windows 防火墙设置。
原因
导致出现此问题的原因是 SharedAccess.reg 文件丢失或已损坏。SharedAccess.reg 文件表示 Windows 防火墙服务。
注意:Windows XP SP2 中的 Windows 防火墙服务取代了早期版本的 Windows XP 中的 Internet 连接防火墙 (ICF) 服务。
解决方案
要解决此问题,请使用下列方法之一。
方法 1:调用“Setup API InstallHinfSection”函数以安装 Windows 防火墙
要安装 Windows 防火墙,请按照下列步骤操作:
单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
在命令提示符处,键入下面的命令行,然后按 Enter:
Rundll32 setupapi,InstallHinfSection Ndi-Steelhead 132 %windir%\inf\netrass.inf
重新启动 Windows。
单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
在命令提示符处,键入以下命令并按 Enter:
Netsh firewall reset
单击“开始”,单击“运行”,键入 firewall.cpl,然后按 Enter。在“Windows 防火墙”对话框中,单击“启用(推荐)”,然后单击“确定”。
方法 2:将 Windows 防火墙项添加到注册表
警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。
要将 Windows 防火墙项添加到注册表,请按照下列步骤操作:
将下列文本复制到“记事本”中,然后将文件另存为 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
双击“Sharedaccess.reg”以将此文件的内容并入到注册表中,并创建 Windows 防火墙注册表项。
重新启动 Windows。
单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
在命令提示符处,键入以下命令并按 Enter:
Netsh firewall reset
单击“开始”,单击“运行”,键入 firewall.cpl,然后单击“确定”。
配置要使用的 Windows 防火墙设置。
如果上述方法不起作用,请重新安装 Windows XP SP2。