症状:
通过\\ip或\\<计算机名>访问任何计算机时都会出现“找不到网络路径”的错误提示,无法正常访问网络资源,但可以访问外部网页。
最终解决方法:
运行netsh interface ip reset c:\log.txt命令重置tcp/ip各组件到初始状态,重启电脑后解决问题。
问题解决步骤:
1、检查物理连接:因症状描述访问外部网页时没问题,所以此步可略过。
2、Ping 127.0.0.1回环地址正常,说明tcp/ip协议的安装(基本状态)没问题。
3、 ping 对方计算机名和ip地址都正常(其中有用大数据包来ping),没有丢包,说明计算机的基本连接(包括网卡本身和计算机之间的连接)和网络名称解析没问题。物理层到网络层都是没问题的,应用层协议出现了问题。
4、 检查网络设置:检查在TCP/IP协议上是否捆绑了NETBIOS(在TCP/IP协议属性—高级—WINS—选择启用TCP/IP上的NETBIOS);检查是否已经安装“Microsoft的文件和打印服务”组件,其它计算机也都必须启用“文件和打印共享”,并检查是否安装了Microsoft网络客户端。此项检查正常。
5、检查是否启动了“computer browser”的计算机浏览器服务,WIN2K/XP要确保计算机浏览服务正常启动,保证其能参与网络浏览选举和主机宣告。打开计算机管理->服务和应用程序->服务,查看“Computer Browser”没有被停止或禁用。此项检查正常。
6、使用没有带域的网络,windows xp的计算机必须启用guest来宾账号,因为未加入域的windows xp默认将来访计算机的账号等同于来宾账号,经过检查,其它被访问计算机的guest账号虽然是禁用的,但启用后故障依旧。
相关的策略设置说明:
1) 依次选择“计算机配置→Windows设置→安全设置→本地策略→安全选项 →网络访问:本地账号的共享和安全模式”策略,将默认设置“仅来宾—本地用户以来宾身份验证”更改为“经典:本地用户以自己的身份验证”。此项策略可以让访问计算机的用户通过网络访问使用Windows XP的计算机时,可以用自己的“身份”进行登录。Windows xp的默认设置为仅来宾,而windows 2003和加入域的windows xp默认设置为经典。
2) 在启用“经典:本地用户以自己的身份验证”方式后,可以对同时访问共享文件的用户数量进行限制,并能针对不同用户设置不同的访问权限。但是用户的口令为空时,访问还是会被拒绝。这时需检查“安全选项”→“账户:使用空白密码的本地账户只允许进行控制台登录”策略是否被启用,默认是启用的,根据拒绝优先的原则,密码为空的用户通过网络访问使用Windows XP的计算机时便会被禁止。
7、检查计算机是否允许来宾账号访问:逐一查看所有计算机的本地安全策略设置是否允许Guest(来宾)帐号从网络上访问本地计算机。在本地安全策略管理器gpedit.msc,依次选择“计算机配置“→“Windows设置”→“本地策略”→“用户权利指派”→““拒绝从网络访问这台计算机”,查看策略里是否有包含有GUEST帐号,如果有则删除。
8、 确保被访问机器的内置防火墙没有打开:打开本地连接属性->高级,关掉Internet连接防火墙。如果使用了第三方的防火墙,参考其相关的使用手册,确保防火墙没有禁用UDP-137、UDP-138、TCP-139和TCP-445。此项检查后,所有计算机均未打开防火墙服务。
9、 检查RPC、Plug and Play服务是否已经启动,重新注册以下的动态链接库:
regsvr32 netshell.dll
regsvr32 netcfgx.dll
regsvr32 netman.dll
经检查RPC和Plug and play服务都均已启动,并成功重新注册了以上的动态链接库。
10、最后的可能就是系统Tcp/ip组件损坏或缺失,在windows 98/2k的计算机可以直接卸载再重新安装此协议,而在windows xp/2003,由于Tcp/ip是系统的核心组件,不能直接卸载,只能重置,复位Tcp/ip及相关的组件到干净的状态。在命令行窗口输入netsh interface ip reset c:\log.txt(其中,log.txt是是指定命令生成的状态日志文件名,可任意)。重新启动后,故障解决。
总结:
经过这么多的查错步骤,最后也就一条命令搞定,但是正确的排错步骤必不可少。netsh还有其它一些重要功能,以下列举几个netsh命令的一些常用子功能及使用方法,其它更详细用法请查看windows帮助和支持。
1、为网络接口指定IP地址和网关
下面的命令将配置名为 Local Area Connection 的接口,其静态 IP 地址为 192.168.0.2,子网掩码为 255.255.255.0,默认网关为 192.168.0.1:
C:\>netsh interface ip
Netsh interface ip>
set address name="Local Area Connection" source=static addr=192.168.0.2 mask=255.255.255.0 gateway=192.168.0.1
2
、
重置winsock目录为空白状态
C:\>netsh winsock reset
3、为网络接口指定dns
下面的命令将配置名为 Local Area Connection 的接口,其dns地址为192.168.0.3:
C:\>netsh interface ip
Netsh interface ip>set dns name=“Local Area Connection”source=static addr=192.168.0.3 ddns=enabled suffix=interface
4、复位Tcp/ip及相关的组件到干净的状态
C:\>netsh interface ip reset c:\log.txt
复位Tcp/ip并将命令执行日志输出到c:\log.txt。