Khắc phục sự cố máy in Windows 11 cho IT Helpdesk: Từ Print Spooler đến Windows Protected Print (2026)

Cẩm nang xử lý sự cố máy in Windows 11 cho IT Helpdesk. Bao gồm Print Spooler, lỗi driver, máy in mạng LAN, Windows Protected Print Mode 2026, script PowerShell sẵn dùng, và quy trình ticket chuẩn.

Giới thiệu: Máy in — "Boss cuối" của mọi IT Helpdesk

Thành thật mà nói, trong thế giới IT Helpdesk, không có gì tra tấn tinh thần bằng ticket về máy in. Người dùng gọi điện hoảng loạn vì "máy in không in được", nhưng khi hỏi chi tiết thì câu trả lời luôn là "em không biết, nó tự nhiên hỏng". Quen không?

Rồi bạn phải đối mặt với Print Spooler crash, driver xung đột, máy in mạng offline, lệnh in kẹt hàng đợi — tất cả cùng lúc trong một buổi sáng thứ Hai. Mình đã từng xử lý 12 ticket máy in trong một ngày, và tin mình đi, đến ticket thứ 8 thì bạn sẽ muốn chuyển nghề.

Năm 2026 còn đặc biệt hơn. Microsoft đang thay đổi lớn cách Windows xử lý máy in — từ việc chặn driver V3/V4 mới trên Windows Update (kể từ tháng 1/2026), đến Windows Protected Print Mode sẽ trở thành mặc định năm 2027. Nếu đội ngũ IT của bạn chưa chuẩn bị, bạn sẽ gặp rắc rối sớm thôi.

Bài viết này là cẩm nang toàn diện dành cho IT Helpdesk, bao gồm:

  • Khắc phục sự cố Print Spooler với PowerShell (kèm script sẵn dùng, copy-paste là chạy)
  • Bảng tra cứu lỗi máy in thường gặp trên Windows 11
  • Xử lý máy in mạng, chia sẻ qua LAN, và thay đổi RPC trong Windows 11
  • Windows Protected Print Mode và lộ trình chuyển đổi IPP/Mopria 2026–2027
  • Triển khai máy in doanh nghiệp với Intune và Universal Print
  • Quy trình xử lý ticket máy in chuẩn cho Helpdesk

Nào, bắt đầu thôi.

Print Spooler: Hiểu rõ để khắc phục nhanh

Print Spooler là gì và tại sao nó hay lỗi?

Print Spooler là dịch vụ Windows quản lý hàng đợi in — nhận lệnh in từ ứng dụng, lưu tạm vào thư mục spool, rồi gửi từng lệnh đến máy in theo thứ tự. Nghe đơn giản phải không? Nhưng khi dịch vụ này gặp sự cố, mọi hoạt động in ấn trên máy tính đều tê liệt hoàn toàn.

Nguyên nhân phổ biến khiến Print Spooler lỗi:

  • Lệnh in bị hỏng (corrupted print job) kẹt trong hàng đợi — đây là thủ phạm số 1
  • Driver máy in xung đột, đặc biệt driver V3 cũ trên Windows 11 24H2
  • File tạm trong thư mục C:\Windows\System32\spool\PRINTERS bị corrupt
  • Phần mềm máy in của bên thứ ba can thiệp vào dịch vụ (mình nhìn bạn đấy, HP Smart)
  • Phần mềm diệt virus chặn file trong thư mục spool
  • Group Policy vô tình tắt dịch vụ Print Spooler — chuyện này xảy ra nhiều hơn bạn nghĩ, đặc biệt sau khi áp dụng bản vá PrintNightmare

Bước 1: Kiểm tra trạng thái Print Spooler bằng PowerShell

Thay vì mò mẫm trong Services GUI, hãy dùng PowerShell cho nhanh:

# Kiểm tra trạng thái Print Spooler
Get-Service -Name Spooler | Select-Object Name, Status, StartType

# Kết quả mong đợi:
# Name    Status  StartType
# ----    ------  ---------
# Spooler Running Automatic

Nếu Status hiển thị Stopped, đó chính là vấn đề. Còn nếu StartType là Disabled, khả năng cao Group Policy đã tắt dịch vụ này rồi.

Bước 2: Restart Print Spooler

# Restart đơn giản
Restart-Service -Name Spooler -Force

# Kiểm tra lại sau khi restart
Get-Service -Name Spooler

Đơn giản vậy thôi. Nhiều khi chỉ cần restart là xong.

Bước 3: Xóa hàng đợi in bị kẹt

Nếu restart không giải quyết được, lệnh in bị kẹt trong thư mục spool có thể là thủ phạm. Đây là script hoàn chỉnh mà mình dùng gần như hàng ngày — bạn nên lưu lại:

# Script xóa hàng đợi in và restart Print Spooler
# Chạy PowerShell với quyền Administrator

# Bước 1: Dừng dịch vụ
Stop-Service -Name Spooler -Force
Write-Host "Da dung dich vu Print Spooler" -ForegroundColor Yellow

# Bước 2: Xóa tất cả file trong thư mục spool
$spoolPath = "$env:SystemRoot\System32\spool\PRINTERS"
$files = Get-ChildItem -Path $spoolPath -ErrorAction SilentlyContinue
if ($files) {
    Remove-Item -Path "$spoolPath\*" -Force -Recurse
    Write-Host "Da xoa $($files.Count) file trong hang doi in" -ForegroundColor Green
} else {
    Write-Host "Hang doi in trong — khong can xoa" -ForegroundColor Cyan
}

# Bước 3: Khởi động lại dịch vụ
Start-Service -Name Spooler
Write-Host "Da khoi dong lai Print Spooler" -ForegroundColor Green

# Bước 4: Xác nhận
Get-Service -Name Spooler | Format-Table Name, Status, StartType -AutoSize

Bước 4: Kiểm tra Event Viewer nếu Spooler liên tục crash

Khi Print Spooler cứ khởi động rồi lại crash (kiểu bạn start xong quay lại thì nó đã stopped), bạn cần xem Event Viewer để tìm nguyên nhân gốc rễ:

# Lấy 10 event gần nhất liên quan đến Print Spooler
Get-WinEvent -FilterHashtable @{
    LogName = 'System'
    ProviderName = 'Service Control Manager'
    Id = 7031, 7034, 7024
} -MaxEvents 10 | Where-Object {
    $_.Message -like "*Spooler*" -or $_.Message -like "*Print*"
} | Format-Table TimeCreated, Id, Message -Wrap

Nếu thấy thông báo về driver cụ thể gây crash, chuyển sang phần xử lý driver bên dưới nhé.

Bảng tra cứu lỗi máy in thường gặp trên Windows 11

Máy in hiển thị Offline

Triệu chứng: Máy in xuất hiện trong danh sách nhưng có trạng thái "Offline" dù đã bật nguồn và kết nối đàng hoàng.

Lỗi này nghe đơn giản nhưng gây bực bội kinh khủng. Đây là cách xử lý:

  1. Vào Settings > Bluetooth & devices > Printers & scanners
  2. Chọn máy in bị offline > nhấn Open print queue
  3. Trong menu Printer, bỏ chọn "Use Printer Offline" — đúng rồi, đôi khi Windows tự bật cái này mà không ai biết tại sao
  4. Nếu vẫn offline, kiểm tra kết nối vật lý (cáp USB, mạng LAN, Wi-Fi)
  5. Thử restart Print Spooler bằng script ở trên

Lỗi 0x00000709 — Không đặt được máy in mặc định

Triệu chứng: Windows không cho phép đặt máy in mặc định, báo lỗi "Operation could not be completed (error 0x00000709)".

Cách xử lý:

  1. Vào Settings > Bluetooth & devices > Printers & scanners
  2. Tắt tùy chọn "Let Windows manage my default printer" — tính năng này nghe hay nhưng thực tế hay gây rối
  3. Chọn máy in muốn đặt mặc định > nhấn Set as default
  4. Nếu vẫn lỗi, phải chỉnh Registry:
    # Chạy PowerShell với quyền Admin
    Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" -Name "LegacyDefaultPrinterMode" -Value 1 -Type DWord

Lỗi 0x0000011b — Không kết nối được máy in mạng

Triệu chứng: Khi thêm máy in chia sẻ qua mạng LAN, Windows báo "Windows cannot connect to the printer — Error 0x0000011b".

Lỗi này cực kỳ phổ biến sau các bản vá bảo mật CVE-2021-34527 (PrintNightmare). Mình gặp nó ở hầu hết mọi văn phòng đã cập nhật Windows.

Cách xử lý:

# Tắt RPC authentication cho Print Spooler (workaround)
# Chạy trên MÁY CHỦ chia sẻ máy in
reg add "HKLM\System\CurrentControlSet\Control\Print" /v RpcAuthnLevelPrivacyEnabled /t REG_DWORD /d 0 /f

# Restart Print Spooler sau khi thay đổi
Restart-Service -Name Spooler -Force

Lưu ý bảo mật quan trọng: Cách trên là workaround giảm mức bảo mật. Giải pháp lâu dài (và đúng đắn hơn) là cài driver máy in trực tiếp trên máy client thay vì dùng Point-and-Print từ máy chủ.

Lỗi 0x00000bc4 — Không tìm thấy máy in

Triệu chứng: Khi thêm máy in mới, Windows báo "No printers were found".

Cách xử lý:

  1. Đảm bảo dịch vụ Function Discovery Resource Publication đang chạy:
    Get-Service -Name FDResPub | Select-Object Name, Status
    Start-Service -Name FDResPub
  2. Kiểm tra firewall không chặn Network Discovery
  3. Nếu dùng mạng doanh nghiệp, kiểm tra VLAN và subnet — máy in và máy tính phải ở cùng subnet hoặc có route phù hợp (cái này nhiều khi bị bỏ quên lắm)

Lệnh in bị kẹt — Xóa không được, hủy không xong

Triệu chứng: Lệnh in hiển thị trạng thái "Deleting" hoặc "Error" nhưng cứ nằm đó không chịu biến mất, chặn luôn mọi lệnh in phía sau.

Đây có lẽ là một trong những lỗi gây ức chế nhất. Xử lý bằng PowerShell cho nhanh:

# Liệt kê tất cả lệnh in trên máy in cụ thể
Get-PrintJob -PrinterName "Ten-May-In" | Format-Table Id, JobStatus, DocumentName

# Xóa một lệnh in cụ thể
Remove-PrintJob -PrinterName "Ten-May-In" -ID 1

# Hoặc xóa TẤT CẢ lệnh in
Get-PrintJob -PrinterName "Ten-May-In" | Remove-PrintJob

# Nếu vẫn không xóa được, dùng script xóa spool ở phần trên

Xử lý sự cố máy in mạng và chia sẻ qua LAN

Thay đổi quan trọng: RPC over TCP trong Windows 11

Đây là phần mà nhiều IT Helpdesk bị "bất ngờ" nhất.

Từ Windows 11 22H2, Microsoft đã chuyển cơ chế giao tiếp in mạng từ RPC qua Named Pipes sang RPC qua TCP. Mục đích là tăng bảo mật, nhưng thực tế nó gây ra khá nhiều đau đầu khi chia sẻ máy in giữa các máy Windows 10 và Windows 11.

Triệu chứng: Máy Windows 11 không kết nối được máy in chia sẻ từ máy Windows 10 (hoặc ngược lại), dù cùng mạng LAN và ping được nhau bình thường.

Giải pháp qua Group Policy:

  1. Mở gpedit.msc (Local Group Policy Editor)
  2. Điều hướng đến: Computer Configuration > Administrative Templates > Printers
  3. Mở "Configure RPC connection settings"
  4. Đặt Protocol to use for outgoing RPC connections thành "RPC over named pipes"
  5. Chạy gpupdate /force và restart Print Spooler

Giải pháp qua Registry (dành cho Windows 11 Home — vì bản Home không có gpedit):

# Chuyển về RPC over Named Pipes
reg add "HKLM\Software\Policies\Microsoft\Windows NT\Printers\RPC" /v RpcUseNamedPipeProtocol /t REG_DWORD /d 1 /f

# Restart Print Spooler
Restart-Service -Name Spooler -Force

Checklist kiểm tra máy in mạng

Khi nhận ticket về máy in mạng không hoạt động, mình thường đi theo checklist này (theo đúng thứ tự, đừng bỏ bước):

  1. Kiểm tra kết nối cơ bản:
    # Ping máy in mạng
    Test-Connection -ComputerName 192.168.1.100 -Count 4
    
    # Kiểm tra port in (thường là 9100 cho RAW, 631 cho IPP)
    Test-NetConnection -ComputerName 192.168.1.100 -Port 9100
    Test-NetConnection -ComputerName 192.168.1.100 -Port 631
  2. Kiểm tra máy in chia sẻ trên máy chủ:
    # Liệt kê máy in chia sẻ trên máy chủ
    Get-SmbShare | Where-Object {$_.Name -like "*print*" -or $_.ShareType -eq 'PrinterDriver'}
    
    # Hoặc kiểm tra từ xa
    Get-Printer -ComputerName "TEN-MAY-CHU" | Where-Object {$_.Shared -eq $true}
  3. Kiểm tra firewall: Đảm bảo rule "File and Printer Sharing" được bật
  4. Kiểm tra SMB: Windows 11 yêu cầu ít nhất SMB 2.0. Nếu máy chủ in cũ chỉ hỗ trợ SMB 1.0, bạn sẽ phải kích hoạt SMB 1.0 Client — nhưng mình không khuyến khích vì lý do bảo mật

Driver máy in: Vấn đề cũ, thách thức mới

Tại sao driver máy in thường gây lỗi trên Windows 11?

Windows 11 sử dụng 3 loại driver in, và hiểu rõ sự khác biệt này sẽ giúp bạn xử lý sự cố nhanh hơn nhiều:

  • V3 drivers: Kiến trúc cũ, chạy trong kernel mode — đây là nguyên nhân chính của các lỗ hổng PrintNightmare. Microsoft đang dần loại bỏ
  • V4 drivers: An toàn hơn V3 (user mode), nhưng cũng đang bị giới hạn từ 2026
  • IPP Class Driver (Microsoft): Driver hiện đại, dựa trên giao thức IPP — đây là tương lai của in ấn trên Windows

Lỗi phổ biến nhất liên quan đến driver:

  • Driver V3 cũ gây crash Print Spooler sau khi cập nhật Windows 11
  • Cài nhiều driver từ nhiều nhà sản xuất khác nhau gây xung đột (đặc biệt trên những máy tính "lão làng" đã qua nhiều đời máy in)
  • Driver 32-bit không hoạt động trên Windows 11 — vì Windows 11 chỉ hỗ trợ 64-bit

Xóa và cài lại driver đúng cách

# Liệt kê tất cả driver máy in đã cài
Get-PrinterDriver | Format-Table Name, PrinterEnvironment, MajorVersion

# Xóa driver cụ thể (phải xóa máy in dùng driver trước)
Remove-PrinterDriver -Name "HP LaserJet Pro M404-M405 PCL-6 (V4)"

# Nếu không xóa được, dùng Print Management console
# Chạy: printmanagement.msc
# Vào All Drivers > Chuột phải driver > Remove Driver Package

Mẹo từ kinh nghiệm: Sau khi xóa driver cũ, hãy cài driver mới nhất từ website chính hãng của nhà sản xuất (HP, Canon, Epson, Brother...) thay vì tin tưởng driver tự động của Windows Update. Driver chính hãng thường đầy đủ tính năng hơn và ít gây lỗi hơn.

Windows Protected Print Mode (WPP): Điều IT Helpdesk cần biết ngay

WPP là gì?

Windows Protected Print Mode (WPP) là chế độ bảo mật mới trong Windows 11 24H2 và Windows Server 2025. Nó chặn hoàn toàn driver V3/V4 legacy và chỉ cho phép in qua Microsoft IPP Class Driver. Mọi máy in phải hỗ trợ giao thức IPP (Internet Printing Protocol) và được chứng nhận Mopria.

Nghe hơi đáng sợ phải không?

Tại sao Microsoft làm điều này? Theo Microsoft, 9% tất cả lỗ hổng bảo mật Windows liên quan đến driver in. Đúng vậy, 9%. Driver in legacy cần quyền truy cập sâu vào hệ điều hành, tạo cơ hội cho kẻ tấn công cài mã độc, ransomware thông qua các lỗ hổng như PrintNightmare. Nên xét về mặt bảo mật, đây là bước đi hợp lý.

Lộ trình chuyển đổi 2026–2027

Thời điểm Thay đổi Ảnh hưởng
Tháng 10/2024 WPP ra mắt (tùy chọn) trong Windows 11 24H2 Chưa ảnh hưởng nếu không kích hoạt
15/01/2026 Chặn driver V3/V4 mới trên Windows Update Không thể phân phối driver mới qua WU
01/07/2026 Windows ưu tiên IPP Class Driver hơn driver legacy Cài máy in mới có thể dùng driver generic
01/07/2027 WPP bật mặc định trên tất cả phiên bản Windows Driver V3/V4 ngừng hoạt động mặc định

Máy in nào tương thích WPP?

WPP chỉ hoạt động với máy in được chứng nhận Mopria. Tin tốt là hầu hết máy in sản xuất từ 2015 trở đi từ các hãng HP, Canon, Epson, Brother, Lexmark, Xerox đều đã hỗ trợ IPP/Mopria. Bạn có thể kiểm tra danh sách tại mopria.org.

Nhưng có vài điều cần lưu ý:

  • Khi bật WPP, một số tính năng nâng cao (in 2 mặt tùy chỉnh, chọn khay giấy, đóng ghim, xác thực in) có thể không hoạt động — trừ khi nhà sản xuất đã phát hành Print Support App (PSA)
  • Máy in cũ không hỗ trợ IPP sẽ không in được khi WPP bật. Hoàn toàn không
  • Máy in chia sẻ từ Print Server truyền thống qua TCP/IP cũng có thể gặp vấn đề tương thích

Kiểm tra WPP trên hệ thống

# Kiểm tra WPP đã bật chưa qua Registry
$wpp = Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Printers\WPP" -ErrorAction SilentlyContinue
if ($wpp -and $wpp.WindowsProtectedPrintMode -eq 1) {
    Write-Host "Windows Protected Print Mode: BAT" -ForegroundColor Red
} else {
    Write-Host "Windows Protected Print Mode: TAT (mac dinh)" -ForegroundColor Green
}

# Kiểm tra máy in nào đang dùng IPP Class Driver
Get-PrinterDriver | Select-Object Name, MajorVersion, Manufacturer | Format-Table -AutoSize

IT Helpdesk nên chuẩn bị gì?

Đây là phần quan trọng. Đừng đợi đến khi WPP bật mặc định rồi mới cuống:

  1. Kiểm kê máy in: Lập danh sách tất cả máy in trong tổ chức, xác định model nào đã hỗ trợ Mopria/IPP. Việc này nên làm ngay
  2. Tải và lưu trữ driver: Download driver chính hãng cho tất cả máy in, lưu vào network share nội bộ — phòng trường hợp không tải được từ Windows Update sau này
  3. Test trước: Bật WPP trên một nhóm máy thử nghiệm để phát hiện vấn đề sớm. Mình khuyến khích chọn phòng ban nào ít nhạy cảm nhất để test trước
  4. Chưa nên bật WPP trên production: Cho đến khi tất cả nhà sản xuất đã phát hành Print Support App đầy đủ

Triển khai máy in doanh nghiệp: Group Policy, Intune và Universal Print

Phương pháp truyền thống: Group Policy (GPO)

Nếu tổ chức của bạn vẫn sử dụng on-premises Active Directory và Print Server, Group Policy vẫn là cách phổ biến nhất để triển khai máy in. Cách làm cũng khá straightforward:

  1. Cài máy in trên Print Server
  2. Mở Group Policy Management Console (gpmc.msc)
  3. Tạo GPO mới hoặc chỉnh sửa GPO hiện có
  4. Vào User Configuration > Preferences > Control Panel Settings > Printers
  5. Thêm máy in chia sẻ với đường dẫn UNC (ví dụ: \\PrintServer\HP-LaserJet-Phong-KeToan)
  6. Dùng Item-Level Targeting để triển khai máy in theo phòng ban, tầng lầu, hoặc OU — tính năng này rất tiện, đừng bỏ qua

Phương pháp hiện đại: Microsoft Universal Print + Intune

Universal Print là giải pháp in ấn cloud-native của Microsoft, thay thế Print Server truyền thống. Kết hợp với Intune, bạn có thể triển khai máy in mà không cần hạ tầng on-premises nào cả.

Cách triển khai:

  1. Đăng ký máy in vào Universal Print qua Azure Portal hoặc Universal Print Connector
  2. Trong Intune admin center, vào Devices > Windows > Configuration > Create > New Policy
  3. Chọn Settings Catalog > tìm "Printer Provisioning"
  4. Nhập Cloud Device ID, Printer Shared Name, và Shared ID từ Azure Portal
  5. Gán policy cho nhóm Entra ID (Azure AD) phù hợp

Ưu điểm của Universal Print:

  • Không cần Print Server on-premises — bớt một thứ phải maintain
  • Máy in xuất hiện tự động trên thiết bị người dùng
  • Quản lý tập trung qua Azure Portal
  • Tương thích tốt với Windows Protected Print Mode
  • Hỗ trợ hybrid work — nhân viên in được từ bất kỳ đâu có mạng

Yêu cầu license: Universal Print cần license Microsoft 365 E3/E5, Business Premium, hoặc Universal Print standalone license. Đây là điều cần tính trước khi quyết định chuyển đổi.

Quy trình xử lý ticket máy in chuẩn cho Helpdesk

Sau nhiều năm xử lý ticket máy in, mình đúc kết được quy trình 3 tầng này. Nó không hoàn hảo, nhưng giúp giảm đáng kể thời gian xử lý và tránh bỏ sót bước quan trọng.

Tầng 1: Kiểm tra cơ bản (1–5 phút)

  1. Xác nhận vấn đề: Máy in nào? Tên model? Kết nối qua USB, mạng LAN, hay Wi-Fi?
  2. Kiểm tra vật lý: Máy in bật chưa? Có giấy không? Đèn báo lỗi gì? (Nghe buồn cười nhưng 30% ticket máy in là do hết giấy hoặc chưa bật nguồn)
  3. Kiểm tra kết nối: Cáp USB chắc chưa? Ping được máy in mạng không?
  4. Restart cơ bản: Tắt máy in, chờ 30 giây, bật lại. Restart Print Spooler trên máy tính
  5. Kiểm tra máy in mặc định: Đúng máy in chưa? Có đang offline không?

Tầng 2: Xử lý phần mềm (5–15 phút)

  1. Xóa hàng đợi in: Dùng script PowerShell xóa spool
  2. Chạy Troubleshooter: Settings > System > Troubleshoot > Other troubleshooters > Printer
  3. Kiểm tra driver: Driver có up-to-date không? Có driver V3 cũ gây xung đột không?
  4. Xóa và thêm lại máy in: Remove printer, restart, thêm lại từ đầu
  5. Kiểm tra Windows Update: Có bản cập nhật nào gần đây gây lỗi in không?

Tầng 3: Escalation (15+ phút)

  1. Kiểm tra Group Policy: GPO có đang chặn Print Spooler hoặc cấu hình RPC sai không?
  2. Kiểm tra Print Server: Print Server có hoạt động bình thường không?
  3. Kiểm tra Event Viewer: Tìm event liên quan đến driver crash hoặc spooler error
  4. Cài driver ở Safe Mode: Nếu driver gây BSOD hoặc crash liên tục
  5. Liên hệ vendor: Nếu nghi ngờ lỗi phần cứng — đến lúc này thì đã hết phạm vi IT Helpdesk rồi

Script PowerShell tổng hợp cho Helpdesk

Đây là script "all-in-one" mà mình đã dùng và tinh chỉnh qua thời gian. Bạn lưu thành file .ps1 rồi chạy khi cần — tiết kiệm kha khá thời gian:

# PrinterTroubleshoot.ps1
# Script khac phuc su co may in toan dien cho IT Helpdesk
# Chay voi quyen Administrator

param(
    [switch]$ClearQueue,
    [switch]$RestartSpooler,
    [switch]$CheckDrivers,
    [switch]$DiagnosticAll
)

function Show-SpoolerStatus {
    Write-Host "`n=== TRANG THAI PRINT SPOOLER ===" -ForegroundColor Cyan
    Get-Service -Name Spooler | Format-Table Name, Status, StartType -AutoSize
}

function Clear-PrintQueue {
    Write-Host "`n=== XOA HANG DOI IN ===" -ForegroundColor Cyan
    Stop-Service -Name Spooler -Force
    $spoolPath = "$env:SystemRoot\System32\spool\PRINTERS"
    $count = (Get-ChildItem $spoolPath -ErrorAction SilentlyContinue).Count
    Remove-Item "$spoolPath\*" -Force -Recurse -ErrorAction SilentlyContinue
    Start-Service -Name Spooler
    Write-Host "Da xoa $count file va khoi dong lai Spooler" -ForegroundColor Green
}

function Show-PrinterDrivers {
    Write-Host "`n=== DANH SACH DRIVER MAY IN ===" -ForegroundColor Cyan
    Get-PrinterDriver | Format-Table Name, MajorVersion, Manufacturer, PrinterEnvironment -AutoSize
}

function Show-InstalledPrinters {
    Write-Host "`n=== DANH SACH MAY IN ===" -ForegroundColor Cyan
    Get-Printer | Format-Table Name, DriverName, PortName, PrinterStatus, Shared -AutoSize
}

function Show-RecentPrintEvents {
    Write-Host "`n=== EVENT GAN DAY ===" -ForegroundColor Cyan
    Get-WinEvent -FilterHashtable @{LogName='System'; Id=7031,7034,7024} -MaxEvents 20 -ErrorAction SilentlyContinue |
        Where-Object {$_.Message -like "*Spooler*" -or $_.Message -like "*Print*"} |
        Select-Object -First 5 |
        Format-Table TimeCreated, Id, @{N='Message';E={$_.Message.Substring(0, [Math]::Min(100, $_.Message.Length))}} -Wrap
}

# Thuc thi
if ($DiagnosticAll -or (-not $ClearQueue -and -not $RestartSpooler -and -not $CheckDrivers)) {
    Show-SpoolerStatus
    Show-InstalledPrinters
    Show-PrinterDrivers
    Show-RecentPrintEvents
}

if ($ClearQueue) { Clear-PrintQueue }
if ($RestartSpooler) { Restart-Service -Name Spooler -Force; Show-SpoolerStatus }
if ($CheckDrivers) { Show-PrinterDrivers }

Cách sử dụng:

# Chẩn đoán toàn bộ
.\PrinterTroubleshoot.ps1 -DiagnosticAll

# Chỉ xóa hàng đợi in
.\PrinterTroubleshoot.ps1 -ClearQueue

# Restart Print Spooler
.\PrinterTroubleshoot.ps1 -RestartSpooler

# Kiểm tra driver
.\PrinterTroubleshoot.ps1 -CheckDrivers

Câu hỏi thường gặp (FAQ)

Print Spooler liên tục crash sau khi cập nhật Windows 11, phải làm sao?

Đầu tiên, kiểm tra Event Viewer để xác định driver nào gây crash. Sau đó, khởi động vào Safe Mode và dùng printmanagement.msc để xóa driver có vấn đề. Cài lại driver mới nhất từ website chính hãng. Nếu vấn đề vẫn tiếp tục, thử gỡ bản cập nhật Windows gần nhất qua Settings > Windows Update > Update history > Uninstall updates.

Windows Protected Print Mode có ảnh hưởng đến máy in cũ không?

Có, nhưng chưa phải ngay lúc này. WPP hiện tại là tùy chọn (mặc định tắt) và chỉ bật mặc định từ tháng 7/2027. Tuy nhiên, IT nên bắt đầu kiểm kê máy in từ bây giờ — xác định model nào hỗ trợ Mopria/IPP và lên kế hoạch thay thế máy in quá cũ. Máy in đang hoạt động với driver hiện tại sẽ tiếp tục hoạt động bình thường cho đến khi WPP được bật.

Tại sao máy in mạng LAN không hoạt động sau khi nâng cấp Windows 11?

Nguyên nhân chính là Windows 11 22H2 trở lên đã chuyển từ RPC qua Named Pipes sang RPC qua TCP. Thay đổi này gây xung đột khi chia sẻ máy in giữa Windows 10 và Windows 11. Giải pháp nhanh là chỉnh Group Policy hoặc Registry để chuyển về RPC over Named Pipes (mình đã hướng dẫn chi tiết ở phần trên). Về lâu dài, nên cân nhắc chuyển sang Universal Print hoặc cài driver trực tiếp trên từng máy client.

Nên dùng Universal Print hay Print Server truyền thống?

Nếu tổ chức của bạn đã sử dụng Microsoft 365 E3/E5 hoặc Business Premium, Universal Print là lựa chọn tốt hơn — đặc biệt cho môi trường hybrid work. Không cần Print Server on-premises, quản lý tập trung qua Azure, và tương thích tốt với WPP. Tuy nhiên, nếu bạn có nhiều máy in cũ không hỗ trợ IPP hoặc chưa có license phù hợp, Print Server truyền thống vẫn hoàn toàn ổn.

Làm cách nào để kiểm tra máy in có hỗ trợ Mopria/IPP không?

Có 3 cách: (1) Truy cập mopria.org và tìm model máy in trong danh sách chứng nhận; (2) Kiểm tra trang web nhà sản xuất — xem thông số kỹ thuật có đề cập IPP hoặc Mopria không; (3) Trên Windows 11, mở PowerShell và chạy Get-PrinterDriver — nếu máy in đang dùng "Microsoft IPP Class Driver" thì đã tương thích rồi.

Về Tác Giả Editorial Team

Our team of expert writers and editors.