Udostępnij za pośrednictwem


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

Ten artykuł zawiera pomoc w rozwiązaniu problemu polegającego na tym, że nie można drukować po zainstalowaniu dodatku Service Pack lub poprawki drukarki na serwerze.

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ą napotkać oba następujące objawy:

  • Gdy klient lub serwer próbuje wydrukować, usługa buforu wydruku wydaje się przestać odpowiadać (lub "zawieszać się"), a wyświetlany jest 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 za pomocą urządzeń i drukarek lub przy użyciu konsoli zarządzania drukowaniem.

Przyczyna

Takie zachowanie może wystąpić w przypadku zainstalowania pakietu Service Pack lub poprawki na serwerze, na którym zainstalowano wiele sterowników drukarek opartych na systemie Unidrv (PCL).

Podczas instalowania dodatku Service Pack lub pliku poprawek, który aktualizuje Unidrvui.dll na serwerze z wieloma sterownikami drukarki PCL opartymi na unidrv, serwer może poświęcić długi czas (do 2 godzin) ponowne generowanie przeanalizowanych plików opisu drukarki binarnej (plików bud), które są używane do 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ć komunikaty do klientów, którzy wskazują, ż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 plików ogólnego opisu drukarki (GPD) muszą być ponownie generowane, ponieważ wersja pliku analizatora GPD została zmieniona. Po przeanalizowaniu wszystkich sterowników PCL opartych na unidrv bufor może ponownie odbierać zadania drukowania. W związku z tym firma Microsoft zaleca zaplanowanie instalacji dodatków Service Pack i poprawek na serwerach z wieloma sterownikami drukarki PCL opartymi na unidrv, aby pomieścić tę kompilację pliku .bud do dwóch godzin.

Rozwiązanie

Aby rozwiązać ten problem, zaplanuj wystarczający czas, aby serwer ukończył analizowanie wszystkich sterowników drukarek opartych na unidrv dla każdego uaktualnionego pliku sterownika, a następnie zaplanować wystarczający czas dla każdej drukarki, która używa tych plików.

Rozwiązanie

Ważne

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 wykonać poniższe kroki. Aby zapewnić dodatkową ochronę, utwórz kopię zapasową rejestru przed przystąpieniem do jego modyfikacji. 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 poczekać na ukończenie analizowania wszystkich sterowników drukarek opartych na unidrv, ręcznie usuń wszystkie buforowane pliki opisu drukarki binarnej (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 16.

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

W tym celu 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 oznaczone bieżącą datą i godziną. Pliki są wyświetlane z bieżącą 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

    W tym celu 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 16.

      Jeśli później musisz przywrócić klucz rejestru Wydruku , 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 16.

      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 funkcje drukowania są dostępne dla użytkowników po około 30 minutach.

Więcej informacji

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