สคริปต์ PowerShell เพื่อเริ่มบริการตัวจัดคิวงานพิมพ์ใหม่
บางครั้ง เรามีปัญหากับตัวจัดคิวเครื่องพิมพ์ที่เอกสารติดอยู่ในคิวเครื่องพิมพ์หรือบริการตัวจัดคิวเครื่องพิมพ์ไม่ทำงาน หากต้องการแก้ไขปัญหาการรีสตาร์ทบริการตัวจัดคิวงานพิมพ์ ให้ใช้สคริปต์ PowerShell เพื่อตรวจสอบว่าบริการตัวจัดคิวงานพิมพ์ทำงานอยู่หรือไม่ และ เริ่มบริการตัวจัดคิวงานพิมพ์ใหม่
ในภาพด้านบน มี 2 งานติด/หยุดชั่วคราวในคิวเครื่องพิมพ์และไม่สามารถพิมพ์ได้
ในโพสต์บล็อกนี้ ฉันจะอธิบายวิธีแก้ปัญหาที่เกี่ยวข้องกับตัวจัดคิวเครื่องพิมพ์ที่หยุดทำงานบน Windows โดยใช้สคริปต์ PowerShell
แก้ไขปัญหาบริการตัวจัดคิวงานพิมพ์
หากไฟล์ไม่ถูกส่งไปยังเครื่องพิมพ์หรือเอกสารติดอยู่ในคิวเครื่องพิมพ์ สาเหตุที่พบบ่อยกว่านั้นคือบริการตัวจัดคิวเครื่องพิมพ์อาจไม่ทำงาน
Print Spooler คือชื่อบริการของ Windows สำหรับ Print Spooler เป็นค่าเริ่มต้นที่เปิดใช้งานบนระบบปฏิบัติการ Windows และระบบปฏิบัติการเซิร์ฟเวอร์ทั้งหมด งานหลักของบริการตัวจัดคิวเครื่องพิมพ์คือการโหลดไดรเวอร์การพิมพ์ งานพิมพ์ การจัดคิวงาน และจัดการการโต้ตอบกับเครื่องพิมพ์
เพื่อตรวจสอบสถานะบริการตัวจัดคิวเครื่องพิมพ์
ใช้สคริปต์ PowerShell ด้านล่าง
$PrintSpooler = Get-Service -Name Spooler
# Get the Print Spooler Service status (Running or Stopped
$PrintSpoolerในสคริปต์ PowerShell ข้างต้น โดยใช้ Get-Service cmdlet รับวัตถุบริการ Spooler และกำหนดให้กับตัวแปร $PrintSpooler
ในบรรทัดถัดไป ให้พิมพ์เนื้อหาของตัวแปร $PrintSpooler โดยจะแสดงผลสถานะบริการตัวจัดคิวงานพิมพ์ ชื่อ และชื่อที่แสดงดังต่อไปนี้
PowerShell - รีสตาร์ทตัวจัดคิวงานพิมพ์
$PrintSpooler = Get-Service -Name Spooler
# Get the Print Spooler Service status (Running or Stopped)
$PrintSpooler
# Logic to check Print Spooler Service and restart if not running
if($PrintSpooler.Status -eq 'stopped')
{
# Start Print Spooler Service on local computer
Start-Service $PrintSpooler
}
# Check the Print Spool Service status
$PrintSpooler
ในสคริปต์ PowerShell ข้างต้น
- รับวัตถุบริการตัวจัดคิว
- ตรวจสอบสถานะบริการตัวจัดคิวงานพิมพ์
- ตรวจสอบว่าบริการตัวจัดคิวงานพิมพ์อยู่ในสถานะหยุดทำงานหรือไม่
- หากบริการตัวจัดคิวงานพิมพ์เท่ากับสถานะหยุด ให้เริ่มบริการตัวจัดคิวงานเครื่องพิมพ์ใหม่โดยใช้คำสั่ง
Start-Service Spooler
เคล็ดลับเด็ด: วิธีรับสิทธิ์ในโฟลเดอร์และโฟลเดอร์ย่อย!
วิธีการรีสตาร์ทบริการตัวจัดคิวเครื่องพิมพ์บนเวิร์กสเตชัน
# Get Spooler service object
$PrintSpooler = Get-Service -Name Spooler
#Restart Printer Spooler Service on WorkStation
Restart-Service $PrintSpoolerในสคริปต์ PowerShell ข้างต้น
- รับอ็อบเจ็กต์ Spooler Service ในตัวแปร $PrintSpooler
- การใช้
Restart-Serviceเริ่มบริการตัวจัดคิวงานพิมพ์บนเวิร์กสเตชันใหม่
เคล็ดลับเด็ด: ใช้การทดสอบการเชื่อมต่อเพื่อ ping รายการคอมพิวเตอร์โดยใช้ PowerShell!
ทำความสะอาดคิวตัวจัดคิวงานพิมพ์
อาจเกิดขึ้นได้ว่าแม้หลังจากรีสตาร์ทบริการตัวจัดคิวเครื่องพิมพ์แล้ว เครื่องพิมพ์ก็ยังไม่ตอบสนองหรือไฟล์ไม่ถูกส่งไปยังเครื่องพิมพ์
เพื่อแก้ไขปัญหาเหล่านี้ เราจำเป็นต้องสำรองข้อมูลคิวเครื่องพิมพ์และล้างคิวตัวจัดคิวเครื่องพิมพ์ในภายหลัง
การสำรองข้อมูลไฟล์คิวตัวจัดคิวเครื่องพิมพ์
ก่อนที่เราจะล้างคิวตัวจัดคิวเครื่องพิมพ์ ให้สำรองข้อมูลคิวโดยใช้สคริปต์ PowerShell ด้านล่าง
# Stop Spooler Service
Stop-Service -Name Spooler -Force
# To backup the Spooler files
Move-Item -Path "$env:SystemRoot\System32\spool\PRINTERS\*.*" -Destination 'C:\Spooler\Backup\' -Forceในตัวอย่างข้างต้น ให้หยุดบริการตัวจัดคิวงานพิมพ์ก่อน
การใช้ Move-Item และเส้นทางคิวสปูลเครื่องพิมพ์ ย้ายไฟล์คิวสปูลไปยังเส้นทางปลายทางตามที่ระบุเป็นข้อมูลสำรอง
ลบไฟล์คิวตัวจัดคิวเครื่องพิมพ์
ขณะที่เราสำรองข้อมูลไฟล์คิวในขั้นตอนข้างต้น ให้เรียกใช้สคริปต์ PowerShell ด้านล่างเพื่อลบไฟล์คิวตัวจัดคิว และเริ่มบริการตัวจัดคิวงานพิมพ์ในภายหลัง
# To delete the Printer Spooler files
Remove-Item -Path "$env:SystemRoot\System32\spool\PRINTERS\*.*"
# Start print spooler service
Start-Service -Name Spoolerในสคริปต์ PowerShell ข้างต้น Remove-Item cmdlet จะใช้เส้นทางคิวตัวจัดคิวเครื่องพิมพ์ที่ระบุด้วย $env: ตัวแปรสภาพแวดล้อมของเส้นทาง และลบไฟล์ทั้งหมดออกจากโฟลเดอร์
เคล็ดลับเด็ด: วิธีใช้ tail - เพื่อรับบรรทัดสุดท้ายของไฟล์ใน PowerShell!
บทสรุป
ในโพสต์ข้างต้น ฉันได้อธิบายเกี่ยวกับวิธีรีสตาร์ทบริการตัวจัดคิวงานพิมพ์ และใช้คำสั่ง PowerShell ต่างๆ เพื่อแก้ไขปัญหาที่เกี่ยวข้องกับบริการตัวจัดคิวงานพิมพ์ไม่ตอบสนองหรือบริการตัวจัดคิวงานพิมพ์ไม่อยู่ในสถานะทำงาน
ในกรณีเช่นนี้ คุณสามารถ เริ่มบริการตัวจัดคิวงานพิมพ์ใหม่ บนเวิร์กสเตชันภายในหรือระยะไกลได้
คุณสามารถค้นหาหัวข้อเพิ่มเติมเกี่ยวกับคำสั่ง PowerShell Active Directory และพื้นฐาน PowerShell ได้ในหน้าแรกของ ShellGeek

