今天早上,坐我旁邊的同事的電腦壞了,上不去網,拿到IT部門去修理,得到的回覆是需要重做系統。由於最近IT部門(尤其是Desktop組)處理問題很不給力,所以我主動幫他看看情況,最終解決了問題。特此把解決過程和方法記錄下來,以備今後遇到同樣問題。
主要癥狀,就是無法上網,IP地址擷取(設定)障礙。
1. 網卡指示燈正常;
2. 本地串連屬性裡面,各種協議貌似齊全;
3. 不論是設定靜態IP地址還是DHCP都無法獲得IP地址,ipconfig的結果就是:
通過從網上查資料,發現可以到"My Computer" -> "Manage" -> "Device Manager"中,選擇菜單"View" -> "Show hidden devices",檢查IPSEC Driver和TCP/IP Protocol Driver是否狀態正常。
如果缺少的話,需要從另外的機器上拷貝檔案,存到出問題的機器上。我的同事的TCP/IP沒有了,所以我從我自己的電腦上的C:\Windows\System32\Drivers裡面,複製tcpip.sys到他的機器上。不過,重啟以後,似乎也沒有解決問題。
接著查看Event log,看到裡面有不少關於TCP/IP的錯誤事件:
因此判斷是TCP/IP出了問題,於是打算重裝TCP/IP協議。但是如果直接開啟本地串連屬性,會發現TCP/IP協議的Uninstall按鈕是disabled狀態的。通過參考這篇文章(http://blog.sina.com.cn/s/blog_6133baa60100f1f7.html),重裝了TCP/IP協議,問題終於解決。具體安裝步驟如下:
Full uninstall of TCP/IP
Reference: http://support.microsoft.com/kb/325356
1. Locate the Nettcpip.inf file in %winroot%\inf, and then open the file in Notepad.
2. Locate the [MS_TCPIP.PrimaryInstall] section.
3. Edit the Characteristics = 0xa0 entry and replace 0xa0 with 0×80.
4. Save the file, and then exit Notepad.
5. In Control Panel, double-click Network Connections, right-click Local Area Connection, and then select Properties.
6. On the General tab, click Install, select Protocol, and then click Add.
7. In the Select Network Protocols window, click Have Disk.
8. In the Copy manufacturer’s files from: text box, type c:\windows\inf, and then click OK.
9. Select Internet Protocol (TCP/IP), and then click OK.
Note This step will return you to the Local Area Connection Properties screen, but now the Uninstall button is available.
10. Select Internet Protocol (TCP/IP), click Uninstall, and then click Yes. Restart PC.
Delete the following keys before reinstalling TCP/IP.
Run->Regedit
HKLM/system/CurrentControlSet/services/winsock
HKLM/system/CurrentControlSet/services/winsock2
Replace the 0×80 back to 0xa0, this will eliminate the related “unsigned driver” error that was encountered during the uninstall phase.
Return to “local area connection”> properties > general tab > install > Protocol > TCP/IP
If “Extended Error” occur, continue with the following steps:
esentutl /g c:\windows\security\Database\secedit.sdb
esentutl /r c:\windows\security\Database\secedit.sdb
esentutl /p c:\windows\security\Database\secedit.sdb
esentutl /g c:\windows\security\Database\secedit.sdb
Get back to your “local area connection” properties
Choose install > protocol > tcp/ip and try again
You are done. Reboot your PC now.