多年来都在玩注册表,这次总算把注册表玩垮了。
我是将另外一台硬件完全一样、软件安装不完全一样的电脑的“HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet”项全部导入本机出了问题。其它方面倒是问题不大,只是把网络全干掉了。网卡呈现无效状态,卸载都卸不了。
后来发现对网卡来一次“更新驱动程序”网卡的无效状态就没了,而且也可以卸掉重装了。但是重装了网卡、配置好网卡之后网络仍然不可用。
用 ping 测试一下,出一个“Unable to contact IP driver, error code 2” 的提示。
用 net start 看一下 tcpip 驱动没有启动。
用 net start tcpip 试图启动 tcpip 驱动,结果报一个“文件未找到”的错误,不能启动。
要是在 Win98 里碰到这个问题,把 TCPIP 组件卸载重装就解决了。
可是 XP 不许卸载 TCPIP,说是提供了一个等价于删除重装 TCPIP 的操作 “netsh int ip reset <logfile>”,我试了无数遍问题依旧,无论如何 net start tcpip 都出同样的错。
继续在网上找,终于在 http://www.gamerhome.net/bbs/viewthread.php?tid=223273
找到了真正卸载 TCPIP 的方法:
重装TCP/IP协议 1、开始——运行——regedit.exe,打开注册表编辑器,删除以下两个键:(重新开机后电脑会在自动生成新的) HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Winsock HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Winsock2 2、用记事本打开%winroot%/inf/nettcpip.inf文件,找到: [MS_TCPIP.PrimaryInstall] Characteristics = 0xa0 <------把此处的0Xa0改为0x80 保存退出 (如果是2000系统,这里已经是0x80了,跳过此步) 3、打开本地连接的TCP/IP属性---添加协议——从磁盘——浏览找到刚刚保存的nettcpip.inf(%winroot%/inf/nettcpip.inf)文件,然后选择“TCP/IP协议”(不要选择那个TCP/IP 版本6)。 经过这一步之后,又返回网络连接的窗口,但这个时候,那个“卸载”按钮已经是可用的了。点这个“卸载”按钮来把TCP/IP协议删除,然后重启一次机器。 4、重启后再照着第3步,重新安装一次TCP/IP协议便可。 5、再重启一次,这时应该可以了,可以根据需要,设置一下IP地址。 |
按照他的方法,的确把 TCPIP 真正卸载了。可是重装时怎么也装不上,说是“出现扩展错误”。
继续在网上找,又在 http://chaodan97758.blog.163.com/blog/static/7130739200873755581/ 看到一篇文章,
说是安装 IPv6 时如果出现扩展错误,就用运行一下“esentutl /p %windir%/security/Database/secedit.sdb ” 命令,然后就能安装了。
我就试用了一下那个命令,果然 TCPIP 就装好了。然后网络就通了。
事后我想,或许最重要的还是 esentutl... 这一步,或许先前不真正卸载 TCPIP 也行,只是没法再验证了。
后补记: “tcp/ip cp报告了错误2:系统找不到指定文件”这个问题可以用重装TCP/IP协议的方法解决 |