關於winsock registry毀損的修復法。
最近常常看到一些電腦有奇怪的上網問題,他們共同的症狀是,明明網路連線看起來都正常,有ip,有dns,有正確的gateway和routing table,防火牆設定也正常....反正就是能檢查到的通通都正常,也可以ping,也可以traceroute,樣樣都行,就是所有的網路程式通通不能用.....
經過我鍥而不捨的拜了google大神以後,大神終於給我指示啦....原來,通常這樣的情況,就是winsock的registry毀損了.....
到底....為什麼winsock的registry會毀損呢?
原因有很多啦,例如,感染了病毒啦,然後就在防毒程式清病毒時,順便連某些機碼也一併順手清掉啦~~~
好啦,這都不是重點,重點是問題發生了,我們就要快點來解決問題....
底下就是解決的辦法,因為怕不知道哪天微軟會把這篇文章清掉,所以我貼了份備份在blog中,想看原文的人,原文在此。
========================================
注意
安裝完成時,請執行下列步驟:
Netdiag 工具將會傳回數個網路元件 (包括 Winsock) 的測試結果。如需有關測試的詳細資料,請在 netdiag 命令後面加上 /v:netdiag /test:winsock /v
如果您安裝了協力廠商的附加元件,則附加元件的名稱就會取代清單中的 MSAFD 字母。
如果是多於 10 個區段,則表示您安裝了協力廠商的附加程式。
如果少於 10 個區段,則表示資訊遺失。
注意 這些項目代表具有只安裝 TCP/IP 通訊協定的安裝。您可以具備工作 Winsock,並查看其他項目是否安裝了其他通訊協定。例如,如果您安裝 NWLink IPX/SPX,就會看到另外 7 個區段,所以總共是 17 個區段。下列是其中一個新區段的範例名稱:
如果 Netdiag 測試失敗,或是您查看 Msinfo32 之後判斷 Winsock 已經毀損,您必須執行下一節中的步驟,修復 Winsock2 機碼。
注意 執行這個命令後,請重新啟動電腦。此外,對於執行 Windows XP SP2 的電腦,有一個新的 netsh 命令可以重新建立 Winsock 機碼。如需詳細資訊,請造訪下列網站:
注意 如果這些步驟無法解決問題,請依照下一節的步驟執行。
如需有關如何備份登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
注意 刪除 Winsock 機碼之後,請重新啟動電腦。如此,Windows XP 作業系統就會為這兩個機碼建立新的殼層項目。如果刪除 Winsock 機碼之後沒有重新啟動電腦,下一個步驟就會無法正確執行。
經過我鍥而不捨的拜了google大神以後,大神終於給我指示啦....原來,通常這樣的情況,就是winsock的registry毀損了.....
到底....為什麼winsock的registry會毀損呢?
原因有很多啦,例如,感染了病毒啦,然後就在防毒程式清病毒時,順便連某些機碼也一併順手清掉啦~~~
好啦,這都不是重點,重點是問題發生了,我們就要快點來解決問題....
底下就是解決的辦法,因為怕不知道哪天微軟會把這篇文章清掉,所以我貼了份備份在blog中,想看原文的人,原文在此。
========================================
如何判定並修復 Winsock2 毀損
| 文章編號 | : | 811259 |
| 上次校閱 | : | 2006年3月2日 |
| 版次 | : | 10.2 |
重要 本文包含有關修改登錄的相關資訊。修改登錄之前,請務必將它備份起來,並瞭解如何在發生問題時還原登錄。如需有關如何備份、還原和修改登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
256986 (http://support.microsoft.com/kb/256986/) Microsoft Windows 登錄說明
在此頁中
徵狀
當您嘗試使用 Ipconfig 程式釋出及更新 IP 位址時,可能會收到下列錯誤訊息:
當您使用 ipconfig /renew 命令時,可能會收到下列錯誤訊息。
訊息 1
當您建立撥號連線時,可能會收到下列錯誤訊息:
An error occurred while renewing interface 'Internet': (更新 [網際網路] 介面時發生錯誤:) 嘗試操作的對象不是通訊端。
當您啟動 Internet Explorer 時,可能會收到下列錯誤訊息: 無法顯示網頁
當您使用電腦時,可能會收到下列錯誤訊息:Initialization function INITHELPERDLL in IPMONTR.DLL failed to start with error code 10107 (IPMONTR.DLL 中的初始化函數 INITHELPERDLL 無法啟動,錯誤碼 10107)
此外,您可能沒有 IP 位址或「自動私人 IP 位址」(APIPA,Automatic Private IP Addressing),並且可能是在接收 IP 封包,而不是傳送。當您使用 ipconfig /renew 命令時,可能會收到下列錯誤訊息。
訊息 1
An error occurred while renewing interface local area connection:an operation was attempted on something that is not a socket.Unable to contact driver Error code 2. (更新介面的區域連線時發生錯誤:嘗試操作的對象不是通訊端。無法連絡驅動程式。錯誤碼 2)
訊息 2The operation failed since no adapter is in the state permissible for this operation. (作業失敗,因為沒有介面卡處於可以進行這項作業的狀態)
訊息 3The attempted operation is not supported for the type of object referenced. (不支援這項物件參照類型的操作)
在 [裝置管理員] 中,當您按一下 [顯示隱藏裝置] 時,則 [非隨插即用驅動程式] 底下的 TCP/IP 通訊協定驅動程式列為已停用,而且您收到錯誤碼 24。當您建立撥號連線時,可能會收到下列錯誤訊息:
Error 720:No PPP Control Protocols Configured (錯誤 720:沒有設定任何 PPP 控制通訊協定)
發生的原因
當 Winsock 登錄機碼受到損壞或毀損時,就會發生這些問題。
解決方案
如何判斷 Winsock2 機碼是否已毀損
如果要判斷這些徵狀是不是因為 Winsock2 機碼發生問題而造成的,請使用下列方法之一:方法 1:使用 Netdiag 工具
如果要使用 Netdiag 工具,您必須安裝 Microsoft Windows XP 支援工具。如果要執行這項操作,請依照下列步驟執行。注意
| • | 如果您已經安裝支援工具,請前往本節中的第二個程序。 |
| • | 如果您尚未安裝支援工具,並且沒有 Windows XP 安裝光碟,請前往方法 2。 |
| 1. | 插入您的 Windows XP 安裝 CD,然後找出 Support\Tools 資料夾。 |
| 2. | 按兩下 Setup.exe 檔。 |
| 3. | 依照螢幕上的步驟執行,直到出現 [請選擇一個安裝類型] 畫面。 |
| 4. | 在 [請選擇一個安裝類型] 畫面中,按一下 [完整安裝],然後按一下 [下一步]。 |
| 1. | 按一下 [開始],然後按一下 [執行],輸入 Command,然後按一下 [確定]。 |
| 2. | 輸入 netdiag /test:winsock,然後按下 ENTER。 |
方法 2:使用 Msinfo32 程式
注意 如果您沒有 Windows XP 安裝 CD,也沒有安裝支援工具,請只使用這個方法。| 1. | 按一下 [開始],然後按一下 [執行],輸入 Msinfo32,然後按一下 [確定]。 | ||||||||||||||||||||
| 2. | 展開 [元件],再展開 [網路],然後按一下 [通訊協定]。 | ||||||||||||||||||||
| 3. | [通訊協定] 中會有 10 個區段。如果 Winsock2 機碼沒有損壞,每個區段的名稱將如下所示:
|
如果是多於 10 個區段,則表示您安裝了協力廠商的附加程式。
如果少於 10 個區段,則表示資訊遺失。
注意 這些項目代表具有只安裝 TCP/IP 通訊協定的安裝。您可以具備工作 Winsock,並查看其他項目是否安裝了其他通訊協定。例如,如果您安裝 NWLink IPX/SPX,就會看到另外 7 個區段,所以總共是 17 個區段。下列是其中一個新區段的範例名稱:
MSAFD nwlnkipx [IPX]
此外,安裝 NWLink IPX/SPX 而建立的每個新區段,都會以 MSAFD 為開頭。因此,只剩下兩個區段不是以 MSAFD 開頭。如果 Netdiag 測試失敗,或是您查看 Msinfo32 之後判斷 Winsock 已經毀損,您必須執行下一節中的步驟,修復 Winsock2 機碼。
如何修復 Winsock2 的毀損
Windows XP 已安裝 Service Pack 2 時的指示
如果要在已安裝 Windows XP Service Pack 2 (SP2) 的情況下修復 Winsock,請在命令提示字元中輸入 netsh winsock reset,然後按下 ENTER。注意 執行這個命令後,請重新啟動電腦。此外,對於執行 Windows XP SP2 的電腦,有一個新的 netsh 命令可以重新建立 Winsock 機碼。如需詳細資訊,請造訪下列網站:
http://www.microsoft.com/taiwan/technet/prodtechnol/winxppro/maintain/sp2netwk.mspx (http://www.microsoft.com/taiwan/technet/prodtechnol/winxppro/maintain/sp2netwk.mspx)
警告 當您執行 netsh winsock reset 命令時,存取或監視網際網路的程式 (例如防毒軟體、防火牆或 Proxy 用戶端) 可能會受到負面的影響。如果執行這個解決方案後,有程式變成無法正常運作,請重新安裝該程式,以還原其功能。注意 如果這些步驟無法解決問題,請依照下一節的步驟執行。
Windows XP 未安裝 Service Pack 2 時的指示
如果要在未安裝 Windows XP SP2 的情況下修復 Winsock,請刪除毀損的登錄機碼,然後重新安裝 TCP/IP 通訊協定。步驟 1:刪除毀損的登錄機碼
警告 如果您使用「登錄編輯程式」或其他方法不當地修改登錄,可能會發生嚴重問題。這些問題可能會需要您重新安裝作業系統才能解決。Microsoft 不保證可以解決這些問題。請自行承擔修改登錄的一切風險。如需有關如何備份登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756 (http://support.microsoft.com/kb/322756/) 如何在 Windows XP 和 Windows Server 2003 中備份、編輯及還原登錄
| 1. | 按一下 [開始],然後按一下 [執行]。 |
| 2. | 在 [開啟] 方塊中,輸入 regedit,然後按一下 [確定]。 |
| 3. | 在 [登錄編輯程式] 中找出下列機碼,再用滑鼠右鍵按一下每個機碼,然後按 [刪除]: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2 |
| 4. | 提示您是否確定要刪除時,請按一下 [是]。 |
步驟 2:安裝 TCP/IP
| 1. | 用滑鼠右鍵按一下網路連線,再按一下 [內容]。 |
| 2. | 按一下 [安裝]。 |
| 3. | 按一下 [通訊協定],然後按一下 [新增]。 |
| 4. | 按一下 [從磁片安裝]。 |
| 5. | 輸入 C:\Windows\inf,然後按一下 [確定]。 |
| 6. | 在可用通訊協定的清單中按一下 [Internet Protocol (TCP/IP)],然後按一下 [確定]。 |
| 7. | 重新啟動電腦。 |
這篇文章中的資訊適用於:
| • | Microsoft Windows XP Home Edition (家用版) |
| • | Microsoft Windows XP Professional Edition (商用版) |
| • | Microsoft Windows Server 2003, Standard Edition |
| • | Microsoft Windows Server 2003 Enterprise Edition |
留言