分不到 IP 地址的处理
ipconfig /release 时出错:
在释放接口 以太网 时出错: 地址仍未与网络终结点关联。
在续订接口 以太网 时出错: 在其上下文中,该请求的地址无效。
用 netsh winsock reset
netsh int ipv4 reset
netsh int ipv6 reset
时有拒绝访问的情况;
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a00-9b1a-11d4-9123-0050047759bc}\26
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a01-9b1a-11d4-9123-0050047759bc}\25
一种情况,是 TCP/IP NetBIOS Helper 服务不能启动。
其服务名为 LmHosts。
为什么要知道其名字呢?因为后面如果发现有问题,要复制正常系统上的注册表信息,知道服务名可以很快找到需要的服务。
因此它不能启动的原因是,其依赖的两个服务中的一个没有正常启动,实际上是没有。
它依赖了两个服务:一个叫 ancillary Function Driver for Winsock(AFD),另一个叫 NetBT。
当然,光从名字上看,我们并不知道这是哪两个服务,在服务管理器中是否能看到。
因此,检查的办法是用 net start 服务名。
第二个看上去像是服务名,实际也就是服务名。
net start "ancillary Function Driver for Winsock"
请求的服务正常启动。
再用 net start NetBT 一查,没有。这个可能就是 LmHosts 不能启动的原因。
于是,就把正常系统上的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT 复制过来。
重启系统,这几个服务已经正常启动了。
如果是物理机,这时就可以分配 IP 地址了。
对于虚拟机,情况还要复杂一些。
查看注册表,发现已经分配到了正确的 IP 地址,但是在外面用 Ipconfig 查看,得到的地址仍然是 169.254.*.*。
对比了一下正常的系统,发现 Microsoft LLDP 协议驱动程序,想安装,又说找不到系统文件。
经查是没有 Mslldp.sys,找到这个文件,把它复制到 system32\drivers 下,同时,还复制 lldpnotify.dll 到 system32 下。
这下安装正常了,但是,还分不到地址。
还不是这个问题。
再查设备,少一个 Microft 内核调试网络适配器。
直接扫描是找不到的,添加的办法是用添加过时硬件,手动安装。
再启动就好了。
但是,还有一个问题没有解决,就是一旦诊断网卡,就会有注册表的键值的权限被修改成拒绝访问。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a00-9b1a-11d4-9123-0050047759bc}\26
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a01-9b1a-11d4-9123-0050047759bc}\25
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList
NT AUTHORITY\SYSTEM
HKLM\Software\Microsoft\SystemCertificates\Root
HKCU\Software\Policies\Microsoft\SystemCertificates\CA
......