Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описана проблема, из-за которой после установки пакета обновления или исправления принтера на сервере не удается распечатать.
Исходный номер базы знаний: 832219
Симптомы
После установки пакета обновления, свертки обновления или исправления, обновляющего файл Unidrvui.dll в Windows Server, пользователи могут столкнуться со следующими симптомами:
При попытке печати клиента или сервера служба spooler печати перестает отвечать (или "зависать"), а появляется следующее сообщение об ошибке:
Не удалось создать задание печати.
При попытке распечатать тестовую страницу из консоли сервера вы получите следующее сообщение об ошибке:
Не удалось распечатать тестовую страницу.
Мастеры добавления драйвера или принтера перестают отвечать на запросы при попытке установить драйвер с помощью устройств и принтеров или с помощью консоли управления печатью.
Причина
Это может произойти, если установить пакет обновления или пакет исправлений на сервере с множеством драйверов принтера на основе Unidrv (PCL).
При установке пакета обновления или файла исправлений, обновляющего Unidrvui.dll на сервере с множеством драйверов принтера PCL на основе Unidrv, сервер может провести длительное время (до 2 часов) повторно создав файлы описания двоичного принтера (файлы.bud), которые используются для повышения эффективности spooler для этих драйверов. В течение этого времени средство проверки печати не может получать входящие задания печати и может возвращать сообщения клиентам, указывающим, что очередь печати заполнена. Это однократная операция синтаксического анализа и не происходит после успешного повторного восстановления двоичных файлов .bud.
Двоичные файлы .bud, созданные из универсальных файлов описания принтера (GPD), необходимо повторно создать, так как версия файла синтаксического анализа GPD изменяется. После анализа всех драйверов PCL на основе Unidrv средство spooler может снова получать задания печати. Из-за этого корпорация Майкрософт рекомендует планировать установку пакета обновления и исправлений на серверах с множеством драйверов принтеров PCL на основе Unidrv, чтобы разместить эту компиляцию до двухчасового .bud-файла.
Решение
Чтобы устранить эту проблему, запланируйте достаточное время для завершения анализа всех драйверов принтера на основе Unidrv для каждого обновленного файла драйвера, а затем запланируйте достаточное время для каждого принтера, использующего эти файлы.
Обходное решение
Важно!
В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому убедитесь, что вы внимательно выполните следующие действия. Для дополнительной защиты создайте резервную копию реестра перед его изменением. Так вы сможете восстановить реестр, если возникнет проблема. Для получения дополнительной информации о том, как создать резервную копию и восстановить реестр, см. статью Сведения о резервном копировании и восстановлении реестра Windows.
Если вы не можете дождаться завершения синтаксического анализа всех драйверов принтера на основе Unidrv, вручную удалите все файлы описания двоичного принтера кэшированного файла (файлы.bud), а затем позволить им автоматически создаваться. В зависимости от скорости сервера это автоматическое повторное создание может быть завершено в течение короткого времени. Обычно эта операция завершается в течение 30 минут.
Примечание.
При запуске средства печати spooler устанавливается более новая версия Unidrv.dll. В результате файлы .bud устарели. Файлы .bud представляют собой скомпилированные версии PPD-файлов и могут быть полностью повторно созданы из этих PPD-файлов. Из-за этого можно удалить файлы .bud.
Для этого выполните следующие шаги.
Остановите службу spooler печати. Для этого выполните следующую команду из командной строки:
net stop spooler
Найдите все файлы .bud, а затем убедитесь, что они помечены текущим временем и датой. Файлы отображаются с текущей датой.
Удалите все файлы .bud, имеющие метку даты и времени до сегодняшней даты. Эти файлы находятся в следующей папке:
%SYSTEMROOT%\System32\Spool\Drivers\w32x86\3
Удалите следующий раздел реестра, если он существует:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade
Для этого выполните следующие шаги.
Нажмите кнопку "Пуск", нажмите кнопку "Запустить", введите regedit в поле "Открыть" и нажмите кнопку "ОК".
Найдите и щелкните следующий подраздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
В меню Реестр выберите Экспорт файла реестра.
В поле "Имя файла" введите клавишу printkey и нажмите кнопку "Сохранить".
Примечание.
Если позже необходимо восстановить раздел реестра печати , можно сделать это, дважды щелкнув сохраненный файл Printkey.reg.
Найдите и щелкните следующий подраздел реестра, если он существует:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade
В меню "Изменить" нажмите кнопку "Удалить" и нажмите кнопку "Да", чтобы подтвердить удаление раздела реестра PostSPUpgrade.
Примечание.
После перезагрузки компьютера раздел реестра PostSPUpgrade может вновь появить. Это происходит, если другие файлы .bud существуют, которые еще не проанализированы. После синтаксического анализа этих файлов этот раздел реестра автоматически удаляется.
Перезапустите сервер.
После перезапуска сервера функция печати доступна пользователям через 30 минут.
Дополнительная информация
В платформа .NET Framework 3.0 файл unidrv.dll теперь включен в печать XPS. Файл unidrv.dll также может активировать это поведение.