ณ วันนี้ ได้มีผู้มาปรึกษาเรื่องการสั่ง Print งานไม่ได้
ซึ่งเป็นปัญหาที่มีมานานแล้วครับ เพียงแต่จะระบาดเป็นช่วงๆ
ซึ่งปัญหานี้ก่อตัวมาตั้งแต่ Windows XP sp1 โดยในยุคแรกๆ
นั้นจะโดนโจมตีผ่านทางช่องโหว่ของตัว Windows เอง
โดยมีการจำลองตัวเองเป็น service ที่ชื่อ print spoolsv.exe
ทำให้ผู้ใช้อื่นๆ ที่เป็นคนโจมตีสามารถเข้าควบคุมเครื่องได้เลย
และต่อมา Microsoft ก็ออก Service Pack จนถึง 3
ตามที่เรารู้จักกันในปัจจุบัน มาระยะหลังปัญหามักเกิดจากตัว Antivirus
ที่เผลอไปลบหรือไปสั่งหยุด ไอ้เจ้า print spool โดยไม่ได้ตั้งใจ
ทำให้ผู้ใช้งานทั่วไป หรือส่วนราชการทั่วไปที่ไม่มีเจ้าหน้าที่เฉพาะ
ต้องเสียเงินให้กับร้านคอมพิวเตอร์
ซึ่งมักจะอ้างว่าต้องล้างเครื่องใหม่เนื่องจากหาสาเหตุไม่พบ
(ร้าน
เค้าแก้ให้ได้แหละ แต่เค้าไม่ทำเนื่องจากได้ิเงินน้อยกว่า
และเสียเวลาในการหาสาเหตุนานมาก เสียเวลาทำมาหากิน สู่ copy windows
ใส่ซะ ใช้เวลาแค่ 20 นาทีเองจะดีกว่า) ถ้าท่านใดเจอปัญหาแบบนี้ก็ลองแก้ดูนะครับ
1.ปัญหาสั่งพิมพ์ไม่ได้
2.ปัญหาเครื่องพิมพ์หายไปจากระบบซะเฉยๆ
3.Driver Printer หายสาบสูญไปอย่างไม่ทราบสาเหตุ
4.ตอนสั่งพิมพ์งานมักมี Error โดยมีหน้าต่างเตือนขึ้นมาโดยไม่ทราบสาเหตุ
5.ติดตั้ง Driver เครื่องพิมพ์ไม่ได้
ถ้าเครื่องผู้ใดเจอปัญหาแนวๆ นี้ เป็นเพราะว่าตัว Service
(โปรแกรมเล็กๆ ที่คอยสนับสนุนการทำงานต่างๆ เช่น
การสั่งพิมพ์/การคลิกเม้าท์/การเข้ารหัส/การจัดการทรัพยากร) ที่ชื่อว่า
Printer spools.exe ไม่ยอมทำงาน
ส่วนสาเหตุนั้นเท่าที่หาข้อมูลจากเว็บไซต์ต่างๆ คือโดน Antivirus
ที่ติดตั้งในเครื่องเรานี่แหละ เป็นตัวไปสั่งหยุดการทำงาน
และในบางกรณีที่เจอ คือไปสั่งลบแฟ้มที่เกี่ยวข้องใน
C:/Windows/system32/spool ซะหายเกลี้ยง กรณีที่หนักสุดคือไปลบ Port
USB printer port (port ที่ทำให้ OS มองเห้น Printer นั้นแหละ)
กรณีนี้เสียในการจัดการไปทั้งสิ้น 3 ชั่วโมงเศษๆ เลยทีเดียว
spoolsv.exe ก่อนครับ file ตัวนี้มีหน้าที่
ในการจัดการบริหารเกี่ยวกับ printer หรือ กระบวนการพิมพ์ มันจะอยู่ในระบบ
Windows อยู่แล้วครับ ซึ่งโดยปรกติ มันก็ทำงานของมัน โดยไม่ได้กิน CPU
อะไรมากมาย แต่วันดีคืนดีอาจเกิด error จากการจัดการการพิมพ์
ในเครื่องพิมพ์ของเราเองหรือจาก printer ในเน็ตเวิร์ค (Network)
ไม่ว่าจะเป็นบริษัท หรือ สำนักงานต่างๆ จะมีโอกาสเกิดปัญหานี้บ่อยครับ
เพราะมีการแชร์ printer กัน ลองมาเช็คดูครับว่า spoolsv.exe ของเรา
ทำงานเป็นปรกติอยู่หรือป่าว โดยสามารถดูได้ที่ Task Manager (กด Ctrl + Alt
+ Del) แล้วคลิกที่แท็บ Processes หาคำว่า spoolsv.exe ลองดูว่ามันกิน CPU
เท่าไหร่ โดยปรกติมันจะเป็น 00 ครับ แต่ถ้ามันขึ้นเป็น 99
หรือไรก็แล้วแต่ที่ดูแล้วผิดปรกติ จะต้องแก้ไขโดยด่วนครับ
ไม่งั้นเครื่องคอมพิวเตอร์คุณ จะทำงานหนักมากเกินไป ทำให้เครื่องร้อนและ
อาจเกิดความเสียหายในที่สุด เอาล่ะมาดูวิธีการแก้ไขกัน
How to fix it
สำหรับวิธีการแก้ไข โดยหลักการก็คือ
ให้เราทำยังไงก็ได้ให้ตัว service printer spool ทำงานเป็นปกติ
เพียงเท่านี้เครื่องเราก็สามารถสั่งพิมพ์งานได้ตามปกติแล้วครับ
ส่วนวิธีการที่นั้นเท่าที่ลองแก้ปัญหาดู ไม่ว่าจะเป็นตัวระบบปฏิบัติการ
(Windows XP,Vista,Windows 7) ตัว Software Antivirus
มีผลต่อวิธีการแก้ไขเป็นอย่างมากครับ สำหรับข้อแนะนำคือ ถ้าวิธีที่ 1
ไม่ได้ ก็ต้องไปวิธีที่ 2 จนกว่าจะได้ หรือถ้ายอมแพ้จริงๆ ก็ต้องยอม
format เครื่องกันละ มาดูในแต่ละวิธีนะครับ
วิธีที่ 1 การ start service printer spool (ง่ายที่สุด)
1.1 คลิกขวาที่ My Computer แล้วเลิก manage
2. ถ้ามันหยุดทำงาน (stop) ก็ restart ซะ จากนั้น ลองสั่ง print ดู ถ้ายังไม่ได้ ก็ให้
Add Printer ใหม่ แล้วลอง restart Windows ดูซักหนึ่งรอบก็หายเป็นปกติครับ
วิธีัที่ 2 (ขั้นตอนยุ่งยากกว่าเดิม สำหรับท่านที่ไม่ชำนาญ ให้ทำด้วยความระมัดระวัง)
1.ขั้นแรก บูทเครื่องใหม่ แล้วเข้า เซพโหมด ให้ไปลบไฟล์และโฟลเดอร์ทั้งหมด ที่อยู่ใน
C:\Windows\System32\Spool\Printers
C:\Windows\System32\Spool\Drivers\w32x86
ลบออกให้หมด
2 เข้า Registry Editor ไปที่ Start > Run พิมพ์ regedit > OK. หลังจากนั้นก็เข้าไปที่
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86
คลิ๊กเข้าไปข้างใน แล้วให้ลบคีย์ทิ้งไป โดยคลิ๊กขวาเลือก delete
เหลือไว้เฉพาะ
Drivers
Print Processors
3. เข้าไปใน HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Drivers
จะเห็นว่ามีคีย์ชื่อ Version-x (x คือ ตัวเลข 1,2,3,..) ให้คลิ๊กเข้าไปข้างในแล้วลบคีย์ต่างๆที่อยู่ข้างในให้หมด
4. เข้าไปใน HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors
คลิ๊กเข้าไปข้างใน จะเห็นคีย์ต่างๆ ให้ลบอันอื่นทิ้งไปเหลือไว้ตามนี้
BJ Language Monitor
Local Port
PJL Language Monitor
Standard TCP/IP Port
USB Monitor
5. ถ้ามีเครื่องพริ้นท์ ต่ออยู่ ให้ดึงสายออกก่อน แล้วรีสตาร์ทเครื่องเข้าวินโดว์ปกติ ไปเช็ค service ว่ามัน start รึยัง
โดย เข้าไปที่
คลิ๊กขวาที่ My Computer แล้ว click Manage.
ดับเบิ้ลคลิ๊ก Services and Applications และดับเบิ้ลคลิ๊กที่ Services.
ไปดูที่ Print Spooler service ว่ามันขึ้นว่า started รึยังถ้ายังก็คลิ๊กขวาแล้วเลือก start
ปิดหน้าต่าง Computer Management
6. สุดท้ายลองแอดเครื่องพริ้นท์ ดูครับ
4.ใช้ระบบ Microsoft Fix it (กรณีที่เครื่องต่อ internet)
เกริ่นไว้นิดนะครับ กรณีนี้ แก้ได้บ้าง ไม่ได้บ้าง บางครั้งต้อง
Update Windows ใหม่ก่อน จึงจะสามารถเรียก Web service ตัวนี้ได้
ไปเริ่มต้นที่นี้
http://support.microsoft.com/mats/printing_problems/ และทำตามคำอธิบายไปเรื่อยๆ ครับ