Użytkownicy nie mogą drukować po zainstalowaniu dodatku Service Pack, pakietu zbiorczego aktualizacji ani poprawki drukarki na serwerze z systemem Windows

Ten artykuł zawiera pomoc w rozwiązaniu problemu, w którym nie można drukować po zainstalowaniu dodatku Service Pack lub poprawki drukarki na serwerze.

Dotyczy: Windows Server 2012 R2
Oryginalny numer KB: 832219

Symptomy

Po zainstalowaniu dodatku Service Pack, pakietu zbiorczego aktualizacji lub poprawki, która aktualizuje plik Unidrvui.dll w systemie Windows Server, użytkownicy mogą wystąpić oba następujące objawy:

  • Gdy klient lub serwer próbuje wydrukować, usługa Bufor wydruku wydaje się przestać odpowiadać (lub "zawiesić") i zostanie wyświetlony następujący komunikat o błędzie:

    Nie można utworzyć zadania drukowania.

  • Podczas próby wydrukowania strony testowej z konsoli serwera zostanie wyświetlony następujący komunikat o błędzie:

    Nie można wydrukować strony testowej.

  • Kreatory dodawania sterownika lub dodawania drukarki przestają odpowiadać podczas próby zainstalowania sterownika przy użyciu urządzeń i drukarek lub przy użyciu konsoli zarządzania drukowaniem.

Przyczyna

Takie zachowanie może wystąpić w przypadku zainstalowania dodatku Service Pack lub pakietu poprawek na serwerze z wieloma sterownikami drukarek pcl (Printer Control Language) opartymi na systemie Unidrv.

Podczas instalowania dodatku Service Pack lub pliku poprawek, który aktualizuje Unidrvui.dll na serwerze z wieloma sterownikami drukarki PCL opartymi na systemie Unidrv, serwer może poświęcić dużo czasu (do 2 godzin) na ponowne wygenerowanie przeanalizowanych plików opisu drukarki binarnej (plików bud), które są używane w celu zwiększenia wydajności buforu dla tych sterowników. W tym czasie bufor wydruku nie może odbierać przychodzących zadań drukowania i może zwracać klientom komunikaty wskazujące, że kolejka wydruku jest pełna. Jest to jednorazowa operacja analizowania i nie występuje po pomyślnym wygenerowaniu przeanalizowanych plików binarnych bud.

Pliki binarne .bud generowane na podstawie ogólnych plików opisu drukarki (GPD) muszą zostać ponownie wygenerowane, ponieważ wersja pliku analizatora GPD została zmieniona. Po przeanalizowaniu wszystkich sterowników PCL opartych na systemie Unidrv bufor może ponownie odbierać zadania drukowania. W związku z tym firma Microsoft zaleca zaplanowanie instalacji dodatku Service Pack i poprawek na serwerach z wieloma sterownikami drukarek PCL opartymi na systemie Unidrv w celu uwzględnienia tej maksymalnie dwugodzinnej kompilacji pliku bud.

Rozwiązanie

Aby rozwiązać ten problem, zaplanuj wystarczająco dużo czasu, aby serwer ukończył analizowanie wszystkich sterowników drukarek opartych na systemie Unidrv dla każdego uaktualnionego pliku sterownika, a następnie zaplanuj wystarczający czas dla każdej drukarki korzystającej z tych plików.

Obejście problemu

Ważna

W tej sekcji, metodzie lub w tym zadaniu podano informacje dotyczące modyfikowania rejestru. Niepoprawne zmodyfikowanie rejestru może jednak być przyczyną poważnych problemów. Dlatego należy uważnie wykonywać podane czynności. Dla większego bezpieczeństwa przed zmodyfikowaniem rejestru należy wykonać jego kopię zapasową. Dzięki temu będzie można przywrócić rejestr w przypadku wystąpienia problemu. Aby uzyskać więcej informacji na temat sposobu tworzenia kopii zapasowych, przywracania i modyfikowania rejestru, zobacz artykuł Tworzenie kopii zapasowych i przywracanie rejestru systemu Microsoft Windows.

Jeśli nie możesz się doczekać, aż serwer ukończy analizę wszystkich sterowników drukarek opartych na systemie Unidrv, ręcznie usuń wszystkie pliki opisu drukarki binarnej w pamięci podręcznej (pliki bud), a następnie pozwól na ich automatyczne ponowne utworzenie. W zależności od szybkości serwera automatyczne ponowne tworzenie może zostać ukończone w krótszym czasie. Zazwyczaj ta operacja jest wykonywana w ciągu 30 minut.

Uwaga

Po uruchomieniu buforu wydruku instaluje nowszą wersję Unidrv.dll. W związku z tym pliki bud są nieaktualne. Pliki .bud są skompilowane wersje plików ppd i mogą być całkowicie ponownie wygenerowane z tych plików ppd. W związku z tym można usunąć pliki .bud.

Aby to zrobić, wykonaj następujące kroki.

  1. Zatrzymaj usługę Bufor wydruku. W tym celu uruchom następujące polecenie w wierszu polecenia:

    net stop spooler
    
  2. Wyszukaj wszystkie pliki .bud, a następnie upewnij się, że są one ostemplowane bieżącą godziną i datą. Pliki są wyświetlane z dzisiejszą datą.

  3. Usuń wszystkie pliki bud, które mają sygnaturę daty i godziny sprzed dzisiejszej daty. Te pliki znajdują się w następującym folderze:

    %SYSTEMROOT%\System32\Spool\Drivers\w32x86\3

  4. Usuń następujący klucz rejestru, jeśli istnieje:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade

    Aby to zrobić, wykonaj następujące kroki.

    1. Kliknij przycisk Start, kliknij przycisk Uruchom, wpisz regedit w polu Otwórz , a następnie kliknij przycisk OK.

    2. Znajdź, a następnie kliknij następujący podklucz rejestru:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print

    3. W menu Rejestr kliknij polecenie Eksportuj plik rejestru.

    4. W polu Nazwa pliku wpisz printkey, a następnie kliknij przycisk Zapisz.

      Uwaga

      Jeśli później trzeba będzie przywrócić klucz rejestru drukowania , możesz to zrobić, klikając dwukrotnie zapisany plik Printkey.reg.

    5. Znajdź, a następnie kliknij następujący podklucz rejestru, jeśli istnieje:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade

    6. W menu Edycja kliknij pozycję Usuń, a następnie kliknij przycisk Tak , aby potwierdzić usunięcie klucza rejestru PostSPUpgrade .

      Uwaga

      Klucz rejestru PostSPUpgrade może pojawić się ponownie po ponownym uruchomieniu komputera. To zachowanie występuje, jeśli istnieją inne pliki bud, które nie zostały jeszcze przeanalizowane. Po przeanalizowaniu tych plików ten klucz rejestru zostanie automatycznie usunięty.

  5. Uruchom ponownie serwer.

Po ponownym uruchomieniu serwera funkcja drukowania jest dostępna dla użytkowników po około 30 minutach.

Więcej informacji

W .NET Framework 3.0 plik unidrv.dll jest teraz dołączony do drukowania XPS. Plik unidrv.dll może również wyzwolić to zachowanie.