Tuesday, May 12, 2009

วิธีการระบุและแก้ไขการเสียหายจาก Winsock2

วิธีการตรวจสอบว่าคีย์ Winsock2 เสียหายหรือไม่

เพื่อตรวจสอบว่าอาการต่างๆ เกิดจากคีย์ Winsock2 หรือไม่ ให้ใช้วิธีการใดวิธีการหนึ่งต่อไปนี้

วิธีที่ 1: ใช้เครื่องมือ Netdiag

การใช้เครื่องมือ Netdiag คุณต้องยกเลิกการติดตั้งเครื่องมือสนับสนุน Microsoft Windows XP เสียก่อน โดยให้ทำตามขั้นตอนต่อไปนี้

หมายเหตุ
  • หากคุณได้ติดตั้ง Support Tools ให้ไปที่ขั้นที่สองในส่วนนี้
  • หากคุณไม่ได้ติดตั้ง Support Tools และไม่มี Windows XP Setup CD ให้ใช้วิธีที่ 2
  1. ใส่แผ่น Windows XP Setup CD แล้วหาโฟลเดอร์ Support\Tools
  2. ดับเบิลคลิกที่โฟลเดอร์ Setup.exe
  3. ทำตามขั้นตอนต่างๆ บนหน้าจอจนกระทั่งถึงหน้าจอSelect An Installation Type
  4. ที่หน้าจอSelect An Installation Type คลิกCompleteแล้วคลิกNext
เมื่อการติดตั้งเสร็จสมบูรณ์แล้ว ให้ทำตามขั้นตอนต่างๆ ต่อไปนี้:
  1. คลิกที่ Start คลิก Runพิมพ์ Command แล้วคลิก OK
  2. พิมพ์ netdiag /test:winsock แล้วกด ENTER
เครื่องมือ Netdiag จะคืนผลการทดสอบสำหรับองค์ประกอบเน็ตเวิร์กหลายๆ อย่างรวมทั้ง Winsock สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการทดสอบ ใช้/v ที่ท้ายคำสั่ง netdiag: netdiag /test:winsock /v

วิธีที่ 2: ใช้โปรแกรม Msinfo32

หมายเหตุ ใช้วิธีการนี้เฉพาะเมื่อคุณไม่มีแผ่น Windows XP Setup CD และคุณไม่ได้ติดตั้ง Support Tools ไว้
  1. คลิกที่ Start คลิก Run พิมพ์ Msinfo32 แล้วคลิก OK
  2. ขยายComponentsขยายNetworkแล้วคลิกProtocol
  3. มีสิบส่วนภายในProtocol ส่วนหัวของส่วนต่างๆ จะมีชื่อต่างๆ ต่อไปนี้หากคีย์ Winsock2 ไม่ได้รับความเสียหาย:
    • MSAFD Tcpip [TCP/IP]
    • MSAFD Tcpip [UDP/IP]
    • RSVP UDP Service Provider
    • RSVP TCP 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" ในลิสต์

หากมีมากกว่าสิบส่วนในลิสต์ แสดงว่าคุณมีโปรแกรมอื่นๆ ติดตั้งไว้

หากมีน้อยกว่าสิบส่วน หมายถึงการที่มีข้อมูลขาดหายไป

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

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

วิธีการแก้ไขจากการเสียหายของไฟล์ Winsock2

Windows XP พร้อมด้วยคำแนะนำ Service Pack 2

การแก้ไข Winsock หากคุณติดตั้ง Windows XP Service Pack 2 (SP2) ไว้ ให้พิมพ์netsh winsock reset ที่พรอมต์คำสั่ง แล้วกดปุ่ม ENTER

หมายเหตุ รีสตาร์ทเครื่องคอมพิวเตอร์หลังจากรันคำสั่งนี้แล้ว นอกจากนี้ สำหรับคอมพิวเตอร์ที่รัน Windows XP SP2 มีคำสั่งใหม่คือnetsh ที่สามารถสร้างคีย์ Winsock ใหม่ได้ สำหรับข้อมูลเพิ่มเติม โปรดแวะไปที่เว็บไซต์ต่อไปนี้:คำเตือน โปรแกรมต่างๆ ที่ใช้งานหรือตรวจสอบอินเทอร์เน็ตเช่น โปรแกรมป้องกันไวรัส ไฟร์วอลล์หรือไคลเอนต์พร็อกซี่อาจได้รับผลกระทบเมื่อคุณรันคำสั่งnetsh winsock reset หากคุณมีโปรแกรมที่ทำงานได้ไม่ถูกต้องหลังจากคุณใช้วิธีการแก้ปัญหานี้แล้ว ให้ติดตั้งโปรแกรมนั้นๆ ใหม่เพื่อให้ทำงานได้อย่างถูกต้อง

หมายเหตุ หากขั้นตอนเหล่านี้ไม่สามารถแก้ปัญหาได้ ให้ทำตามขั้นตอนต่างๆ ในส่วนถัดไป

คำแนะนำสำหรับ Windows XP ที่ไม่ได้ติดตั้งเซอร์วิสแพ็ค 2

เพื่อแก้ไข Winsock หากคุณไม่ได้ติดตั้ง Windows XP SP2 ไว้ ให้ลบรีจิสตรีคีย์ที่เสียหายทิ้ง แล้วติดตั้งโปรโตคอล TCP/IP ใหม่
ขั้นที่ 1: ลบรีจิสตรีคีย์ที่เสียหาย
คำเตือน อาจเกิดปัญหาร้ายแรง หากคุณแก้ไขรีจิสตรีไม่ถูกต้อง โดยใช้ Registry Editor หรือโดยใช้วิธีอื่น ซึ่งคุณอาจต้องติดตั้งระบบปฏิบัติการใหม่เพื่อแก้ไขปัญหาเหล่านี้ ไมโครซอฟท์ไม่อาจรับประกันได้ว่าปัญหาจะสามารถแก้ไขได้ คุณต้องยอมรับความเสี่ยงในการแก้ไขรีจิสตรีด้วยตนเอง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการแบ็คอัปรีจิสตรี โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
322756 วิธีการแบ็คอัป แก้ไขและคืนค่ารีจิสตรีใน Windows XP และ Windows Server 2003 (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
  1. คลิกที่ Start และคลิกที่ Run
  2. ในช่อง Open ให้พิมพ์ regedit และคลิกที่ OK
  3. ใน Registry Editor หาคีย์ต่างๆ ต่อไปนี้ คลิกขวาที่แต่ละคีย์ แล้วคลิกDelete:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2
  4. เมื่อระบบพรอมต์ให้คุณยืนยันการลบ ให้คลิก Yes
หมายเหตุ รีสตาร์ทเครื่องคอมพิวเตอร์หลังจากลบคีย์ Winsock แล้ว การทำดังกล่าวจะทำให้ระบบปฏิบัติการ Windows XP สร้างรายการเชลล์ใหม่สำหรับคีย์ทั้งสอง หากคุณไม่รีสตาร์ทเครื่องคอมพิวเตอร์หลังจากลบคีย์ Winsock ขั้นตอนถัดไปจะทำงานไม่ถูกต้อง
ขั้นที่ 2: ติดตั้ง TCP/IP
  1. คลิกขวาที่การเชื่อมต่อเน็ตเวิร์ก แล้วคลิกProperties
  2. คลิก Install
  3. คลิกProtocol แล้วคลิกAdd
  4. คลิกHave Disk
  5. พิมพ์C:\Windows\infแล้วคลิกOK
  6. ในลิสต์ของโปรโตคอลต่างๆ ที่ใช้ได้ ให้คลิกInternet Protocol (TCP/IP)แล้วคลิกOK
  7. รีสตาร์ทคอมพิวเตอร์
=======================================================================