Người dùng không thể in sau khi bạn cài đặt gói dịch vụ, bản Cập Nhật hoặc in hotfix trên máy chủ chạy Windows

Áp dụng cho: Windows Server 2012 R2Microsoft Windows Server 2003

Triệu chứng


Sau khi bạn cài đặt Microsoft Windows 2000 Service Pack 2 (SP2), gói dịch vụ cho Windows Server 2003 hoặc Windows Server 2012 R2, một bản Cập Nhật hoặc bản sửa lỗi cập nhật tệp Unidrvui.dll, người dùng có thể gặp phải hai hiện tượng sau:
  • Khi một máy khách hoặc máy chủ in, Dịch vụ bộ đệm in dường như ngừng đáp ứng (hoặc "treo") và thông báo lỗi sau:
    Không thể tạo công việc in.
  • Khi bạn cố gắng in thử một trang từ bàn điều khiển máy chủ, bạn nhận được thông báo lỗi sau:
    Trang kiểm tra không thể in.
  • Thuật sỹ thêm trình điều khiển hoặc thêm máy in ngừng đáp ứng, hoặc khi bạn cố gắng cài đặt trình điều khiển bằng cách sử dụng thiết bị và máy in, hoặc bằng cách sử dụng bàn điều khiển quản lý in.

Nguyên nhân


Hiện tượng này có thể xảy ra nếu bạn cài đặt gói hotfix hoặc gói dịch vụ trên máy chủ có nhiều trình điều khiển in dựa trên Unidrv in điều khiển ngôn ngữ (PCL). Khi bạn cài đặt một dịch vụ gói hotfix tệp hoặc Nhật Unidrvui.dll trên một máy chủ với nhiều trình điều khiển in dựa trên Unidrv PCL, máy chủ có thể dành nhiều thời gian (tối đa 2 giờ) máy in nhị phân phân tích mô tả tệp (.bud) được sử dụng để tái sinh tăng hiệu suất bộ đệm cho các trình điều khiển. Trong thời gian này, bộ đệm in không thể nhận được các công việc in và có thể trả lại thông báo cho khách hàng cho thấy hàng đợi in đầy đủ. Đây là một thời gian hoạt động phân tích và xảy ra sau khi các tệp nhị phân .bud phân tích được tái tạo thành công. Tệp nhị phân .bud được tạo từ máy in chung mô tả (GDP) tập tin phải được tái tạo bởi vì GDP phân tích cú pháp tệp phiên được thay đổi. Sau khi tất cả các trình điều khiển dựa trên Unidrv PCL được phân tích cú pháp, bộ đệm lại có thể nhận được các công việc in. Do đó, Microsoft khuyến cáo bạn lịch gói dịch vụ, cài đặt hotfix trên máy chủ với nhiều trình điều khiển in dựa trên Unidrv PCL để đóng tệp lên tới 2 giờ .bud này.

Giải pháp


Để khắc phục sự cố này, lịch trình đầy đủ thời gian cho máy chủ để hoàn thành các phân tích tất cả các trình điều khiển in dựa trên Unidrv cho mỗi tệp trình điều khiển nâng cấp và lập lịch đủ thời gian cho mỗi máy in sử dụng các tệp này.

Giải pháp


Quan trọng Phần, phương pháp hoặc tác vụ này chứa các bước chỉ dẫn bạn cách sửa đổi sổ đăng ký. Tuy nhiên, sự cố nghiêm trọng có thể xảy ra nếu bạn sửa đổi sổ đăng ký không đúng. Vì vậy, hãy đảm bảo bạn làm theo các bước sau đây một cách cẩn thận. Để bảo vệ tốt hơn, sao lưu sổ đăng ký trước khi bạn sửa đổi. Sau đó, bạn có thể khôi phục sổ đăng ký nếu xảy ra sự cố. Để biết thêm thông tin về cách sao lưu và khôi phục sổ đăng ký, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
322756 Cách sao lưu và khôi phục sổ đăng ký trong Windows
Nếu bạn không thể chờ cho máy chủ để hoàn thành phân tích cú pháp của tất cả các trình điều khiển in dựa trên Unidrv, tự loại bỏ tất cả lưu trữ nhị phân in mô tả tệp (.bud), và sau đó cho họ được tự động tái tạo. Tuỳ thuộc vào tốc độ của máy chủ, này tự động tái tạo có thể được hoàn tất trong thời gian ngắn. Thông thường, thao tác này được hoàn thành trong vòng 30 phút. Lưu ý Khi khởi động bộ đệm máy in, nó sẽ cài đặt phiên bản mới hơn của Unidrv.dll. Do đó, các tập tin .bud đã lỗi thời. Các tập tin .bud biên dịch Phiên bản tập tin .ppd và có thể được hoàn toàn tái tạo từ các tập tin .ppd. Do đó, bạn có thể xoá các tệp .bud. Để thực hiện việc này, hãy làm theo các bước sau:
  1. Dừng dịch vụ bộ đệm máy in. Để thực hiện việc này, hãy chạy lệnh sau từ dấu nhắc lệnh:
    net stop spooler
  2. Tìm kiếm tất cả các tệp .bud, và sau đó đảm bảo rằng chúng được đóng ngày và giờ hiện tại. Các tập tin xuất hiện với ngày hôm nay.
  3. Loại bỏ tất cả các tập tin .bud có ngày và dấu thời gian trước ngày hôm nay. Các tệp này được đặt trong cặp sau:
    %SYSTEMROOT%\System32\Spool\Drivers\w32x86\3
  4. Xoá khoá đăng ký sau nếu nó tồn tại:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade
    Để thực hiện việc này, hãy làm theo các bước sau:
    1. Bấm Bắt đầu, bấm Chạy, nhập regedit trong ô Mở , và sau đó bấm OK.
    2. Định vị và sau đó bấm vào khoá con đăng ký sau:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
    3. Trên menu Đăng ký, bấm vào Xuất Tệp Đăng ký.
    4. Trong hộp tên tệp , nhập printkeyvà sau đó bấm lưu. Lưu ý Nếu sau đó bạn có thể khôi phục khoá đăng ký in , bạn có thể làm như vậy bằng cách bấm đúp vào tệp Printkey.reg mà bạn đã lưu.
    5. Định vị và sau đó bấm vào khoá con đăng ký sau nếu nó tồn tại:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade
    6. Trên menu chỉnh sửa , bấm xoá, và sau đó bấm để xác nhận việc loại bỏ khoá đăng ký PostSPUpgrade . Lưu ýPostSPUpgrade khoá đăng ký có thể xuất hiện sau khi bạn khởi động lại máy tính. Hiện tượng này xảy ra nếu các tập tin .bud tồn tại không có chưa được phân tích. Sau khi các tệp đã được phân tích cú pháp, khoá đăng ký này sẽ tự động bị xoá.
  5. Khởi động lại máy chủ.
Sau khi bạn khởi động lại máy chủ, chức năng in có sẵn cho người dùng sau khoảng 30 phút.

Thông tin Bổ sung


Trong .NET Framework 3.0, tệp unidrv.dll rồi đi kèm với in XPS. Các tập tin unidrv.dll cũng có thể gây ra hiện tượng này.