Saturday, November 1, 2008

How to recover from Winsock2 corruption in Windows Vista

ปัญหา Winsock บน Windows Vista และวิธีการแก้ไข
Winsock นั้นเป็นองค์ประกอบหนึ่งของการใช้งาน TCP/IP ของวินโดวส์ ในกรณีที่ Winsock เกิดความเสียหายจะส่งผลให้ยูสเซอร์ไม่สามารถใช้งานระบบเครือข่ายหรืออินเทอร์เน็ตได้ โดยวินโดวส์จะแสดงข้อความแจ้งความผิดพลาดเมื่อทำการใช้งานต่างๆ ตามกรณี ดังนี้

ข้อควรระวัง: การแก้ไขรีจิสตรีที่ผิดพลาดอาทำให้ระบบไม่สามารถทำงานได้ ดังนั้นเพื่อให้สามารถทำการเรียกคืนรีจิสตรีได้ในกรณีเกิดปัญหา โปรดสำรองรีจิสตรีและเก็บไว้ในที่ปลอดภัยก่อนลงมือแก้ไข

1. เมื่อทำการรันคำสั่ง Ipconfig /release หรือ Ipconfig /renew วินโดวส์จะแสดงข้อผิดพลาดดังต่อไปนี้:
An error occurred while renewing interface 'Internet': An operation was attempted on something that is not a socket.

2. เมื่อทำการรัน 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
The operation failed since no adapter is in the state permissible for this operation.

ข้อผิดพลาดที่ 3
The attempted operation is not supported for the type of object referenced.

3. เมื่อเปิดโปรแกรม Internet Explorer วินโดวส์จะแสดงข้อผิดพลาดดังต่อไปนี้:
The page cannot be displayed

4. เมื่อใช้งานเครื่องคอมพิวเตอร์ วินโดวส์จะแสดงข้อผิดพลาดดังต่อไปนี้:
Initialization function INITHELPERDLL in IPMONTR.DLL failed to start with error code 10107

5. เมื่อทำการสร้าง dial-up connection วินโดวส์จะแสดงข้อผิดพลาดดังต่อไปนี้:
Error 720: No PPP Control Protocols Configured

6.ใน Device Manager เมื่อคลิก Show Hidden Devices ไดรเวอร์ TCP/IP Protocol Driver มีสถานะเป็น Disabled ในส่วน Non-Plug and Play drivers และได้รับรหัสข้อผิดพลาด 24

การแก้ไขปัญหา Winsock
ก่อนอื่นต้องทำการตรวจสอบการทำงานของ Winsock ก่อนว่ามีปัญหาหรือไม่ โดยวิธีการตรวจสอบว่า Winsock2 เสียหายหรือไม่ ทำได้โดยใช้วิธีการดังต่อไปนี้

ใช้โปรแกรม Msinfo32
การตรวจสอบว่า Winsock2 เสียหายหรือไม่โดยใช้โปรแกรม Msinfo32 มีขั้นตอนดังต่อไปนี้
1. คลิก Start พิมพ์ Msinfo32 ในช่อง Start Search แล้วคลิก OK
2. ในหน้า System Information ให้คลิกขยาย Components ขยาย Network แล้วคลิก Protocol
3. ภายใต้ Protocol จะมีหัวข้อของส่วนต่างๆ 14 หัวข้อ ซึ่งมีชื่อต่างๆ ต่อไปนี้หากคีย์ Winsock2 ไม่ได้รับความเสียหาย:
• MSAFD Tcpip [TCP/IP]
• MSAFD Tcpip [UDP/IP]
• MSAFD Tcpip [TCP/IPv6]
• MSAFD Tcpip [UDP/IPv6]
• RSVP UDP Service Provider
• RSVP TCP Service Provider
• RSVP UDPv6 Service Provider
• RSVP TCPv6 Service Provider
• MSAFD NetBIOS [\Device\NetBT_Tcpip...
• MSAFD NetBIOS [\Device\NetBT_Tcpip...
• MSAFD NetBIOS [\Device\NetBT_Tcpip...
• MSAFD NetBIOS [\Device\NetBT_Tcpip...
• MSAFD NetBIOS [\Device\NetBT_Tcpip...
• MSAFD NetBIOS [\Device\NetBT_Tcpip...

หากชื่อต่างๆ ที่แสดงแตกต่างไปรายการด้านบน แสดงว่าคีย์ Winsock2 เสียหาย หรือถ้าหากมีโปรแกรมเพิ่มเติมอื่นๆ เช่นซอฟต์แวพรอกซี่ติดตั้งไว้ และหากได้ติดตั้งโปรแกรมเพิ่มเติมจากผู้ผลิตอื่นๆ ชื่อของโปรแกรมเพิ่มเติมเหล่านั้ยจะแทนที่อักษร "MSAFD" ในรายการ ในกรณีที่มีมากกว่า 14 หัวข้อในลิสต์ แสดงว่ามีโปรแกรมอื่นๆ ติดตั้งไว้ แต่ถ้าหากมีน้อยกว่า 14 หัวข้อ หมายถึงการที่มีข้อมูลขาดหายไป

หมายเหตุ: รายการต่างๆ เหล่านี้แสดงการติดตั้งเฉพาะเมื่อมีการติดตั้งโปรโตคอล TCP/IP เท่านั้น ดังนั้นสามารถมี Winsock ที่ใช้งานเพิ่มเติมได้หากมีการติดตั้งโปรโตคอลอื่นๆ ไว้ ตัวอย่างเช่น หากติดตั้ง NWLink IPX/SPX ไว้ จะเห็นส่วนเพิ่มเติมอื่นๆ อีก 7 ส่วน ทำให้รวมเป็นทั้งหมด 17 ส่วน โดยส่วนหัวของส่วนหนึ่งในส่วนใหม่ คือ MSAFD nwlnkipx [IPX] และแต่ละส่วนใหม่ที่ถูกสร้างขึ้นโดยการติดตั้ง NWLink IPX/SPX จะเริ่มต้นด้วยชื่อ "MSAFD" โดยมีเพียง 2 หัวข้อเท่านั้นที่ไม่ได้เริ่มต้นชื่อด้วยอักขระต่างๆ เหล่านั้น

หากการทดสอบ Netdiag ล้มเหลว หรือหากผลการตรวจสอบพบว่าเกิดความเสียหายกับ Winsock โดยการดูที่ Msinfo32 จะต้องแก้ไขคีย์ Winsock2 โดยการใช้ขั้นตอนต่างๆ ในส่วนถัดไป

วิธีการแก้ไขปัญหาที่เกิดจากไฟล์ Winsock2 เสีย
วิธีการแก้ไขปัญหาที่เกิดจากไฟล์ Winsock2 เสีย บน Windows Vista มีขั้นตอนดังนี้

1. คลิก Start แล้วคลิก Network
2. คลิก Network and Sharing Center (สามารถแอคเซส Network and Sharing Center ได้จาก Control Panel ไดเช่นกัน)
3. ในหน้า Network and Sharing Center คลิก Diagnose and Repair

ถ้าผลการตรวจสอบด้วย Network and Diagnostic tool ไม่พบปัญหา ให้ทำการซ่อมแซมหรือรีเซ็ต Winsock แบบแมนนวล

การซ่อมแซมหรือรีเซ็ต Winsock แบบแมนนวล
การซ่อมแซมหรือรีเซ็ต Winsock แบบแมนนวล มีขั้นตอนดังนี้
1. คลิก Start แล้วพิมพ์ cmd ในช่อง Start Search จากนั้นคลิกขวาที่ cmd.exe คลิก Run as administrator
2. ในหน้าไดอะล็อกบ็อกซ์ User Account Control ให้คลิก Continue หรือใส่พาสเวิร์ดของ Administrator
3. ที่คอมมานด์พรอมท์ ให้พิมพ์ netsh winsock reset แล้วกด Enter เมื่อทำงานเสร็จจะแสดงข้อความแจ้งให้ทราบ
4. ปิดคอมมานด์พรอมท์ โดยพิมพ์ Exit แล้วกด Enter

วิธีการนี้สามารถใช้ได้กับ
• Windows Vista Home Basic
• Windows Vista Home Premium
• Windows Vista Ultimate

ลิงค์ที่เกี่ยวข้อง
How to determine and to recover from Winsock2 corruption in Windows Server 2003, in Windows XP/Vista

Winsock2 corruption Winsock

© 2008 Thai Windows Administrator, All Rights Reserved.

0 Comment: