Как изолировать драйвер принтера в Windows 7, за минуту

Обновлено 24.07.2018

изоляция драйвера

Добрый день! Уважаемые читатели и гости блога pyatilistnik.org. Принтеры самое капризное место в работе системного администратора, именно на них чаще всего жалуются рядовые пользователю, у которых как обычно все очень срочно, горят отчеты, или нужно распечатать КП, Падение службы диспетчера печати (он же spooler) вследствие ошибок в драйверах печати является существенной проблемой ОС семейства Windows. Проблема усугубляется тем, что ошибки с драйверами печати довольно трудно диагностировать, а выявление проблемного драйвера может стать головной болью для системного администратора. Самое плохое, что сбой драйвера печати принтера, загруженного в процесс очереди печати, вызывал сбой самого спулера, в результате в результате вся система печати сервера перестает работать, и эти последствия затрагивают большое количество пользователей и принтеров. Однако вместе с выходом Windows 2008 R2 и Windows 7, все эти проблемы должны остаться в прошлом, ведь в этих ОС появилась технология Printer Driver Isolation (Изоляции драйверов принтеров).

Что такое изоляция драйвера

Вот так вот, очень часто выглядит ошибка, когда происходит конфликт драйверов, на сервере печати.

Как изолировать драйвер принтера в Windows 7-01

Как следует из названия, технология Printer Driver Isolation (PDI) реализует изоляцию драйверов принтеров в отдельные процессы, отделенные от процесса диспетчера печати (spoolsv.exe). Поэтому, если случается любая ошибка в драйвере принтера, то она затрагивает только процесс, которые подгрузил этот драйвер, а не процесс spoolsv.exe, тем самым предотвращая его падение и улучшая надежность сервера печати. Кроме того, эта новая функция обеспечивает возможность изоляции новых версий драйверов с целью тестирования или отладки, а также возможность выявить сбойный драйвер.

Процесс, осуществляющий загрузку драйверов, которые должны работать изолированно от «Диспетчера Печати», называется PrintIsolationHost.exe.Существует три режима работы технологии изоляции драйверов:

  • None – Драйвера принтеров загружаются процессам диспетчера печати (spooler), т.е. в этом режиме система работает как обычно
  • Shared – Драйвера настроены на работу с одним общим экземпляром процесса PrintIsolationHost.exe, отделенного от процесса spoolsv.exe. Это режим работы по-умолчанию.
  • Isolated – Каждый драйвер принтера настроен на использование своего собственного экземпляра процесса PrintIsolationHost.exe.

Чтобы проверить, поддерживает ли драйвер принтера технологию PDI: перейдите в следующую ветку реестра.

HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\выбор версии ОС\Drivers\Version-3\драйвер  принтера\PrinterDriverAttributes

изоляция драйвера принтера

Возможные значения:

  • 0: Драйвер не поддерживает PDI
  • 2: Драйвер принтера поддерживает PDI

Если же значение отсутствует, значит оно равно 0, и драйвер PDI не поддерживает, как в моем примере у HP LaserJet Professional M1212nf MFP, хочу отметить, что вендоры могу выпускать свежие драйвера, которые уже будут поддерживать изолирование драйвера в отдельном процессе, так что если в реестре Windows вы обнаружили значение "0", то попробуйте найти новую версию драйверов на ваш принтер.

Как изменить режим работы Printer Driver Isolation

Есть несколько способов настроить режим работы режима изоляции драйверов печати:

  • Конфигурация с помощью INF –файла драйвера печати, придется слегка поразбираться в синтаксисе
  • Консоль Print Management Console (PMC)
  • Групповые политики
  • INF файл драйвера печати

С помощью inf файла драйвера принтера можно определить, поддерживает ли драйвер PDI или нет. Этот inf файл содержит ключ DriverIsolation, который определяет поддержку PDI. Соответственно, если значение этого параметра 0, значит данный драйвер PDI не поддерживает.

По умолчанию все драйвера в Windows лежат в папке:

C:\Windows\System32\DriverStore\FileRepository

файл INF изоляция драйвера

Консоль Print Management (PMC)

С помощью новой консоли управления принтерами (PMC) можно достаточно просто управлять изоляцией драйверов. Если открыть консоль "Управление печатью (PMC)" и перейти в раздел драйверов, то в правой панели можно увидеть список установленных в системе драйверов, а в колонке Driver Isolation будет отображаться режим работы PDI драйвера принтера.

Изоляция драйвера

Чтобы изменить режим работы драйвера, нужно щелкнуть правой кнопкой по нужному драйверу и выбрать опцию ‘Set Driver Isolation‘. Доступны следующие опции:

  • None
  • Shared
  • Isolated
  • System Default (None)

В русской версии:

  • Нет
  • Общий доступ
  • Изолирован
  • По умолчанию отсутствует

Как изолировать драйвер принтера

Примечания:
Опция "По умолчанию отсутствует (System Default)" – означает, что драйвер работает в соответствии со своими стандартными настройками или настройками групповой политики.
Также если групповая политика ‘Execute Print drivers in isolated processes’ отключена (Disabled), тогда режим изоляции PDI поменять не получится.

Как изолировать драйвер принтера в Windows 7-03

Как изолировать драйвер принтера в Windows 7-03

Групповые политики, позволяющие управлять изоляцией драйверов

Существует две настройки групповой политики, позволяющие настроить режим изоляции драйверов принтеров. Найти их можно в разделе:

Computer Configuration\Administrative Templates\Printers / Конфигурация компьютера/Административные шаблоны/Принтеры

Называются они:

  • Execute print drivers in isolated processes (Выполнять драйверы принтеров в изолированных процессах)

Выполнять драйверы принтеров в изолированных процессах

  • Override print driver execution compatibility setting reported by print driver (Переопределить параметр совместимости выполнения драйвера печати)
  • Политика: Execute print drivers in isolate processes

Настройки этой политики определяют будут ли драйвера принтера выполняться в одном или отдельных процессах. Если драйвера принтеров загружены изолированным процессом (или процессами), то любой сбой в драйвере печати не приведет к падению службы Print Spooler. В том случае если вы активировали или не настраивали данную политику, Диспетчер печати будет выполнять драйвера в изолированном процессе.

Если вы отключите данную политику, то драйвера принтеров будут исполняться в процессе диспетчера печати (как в версиях Windows XP/2003 и более ранних версиях ОС).
Политика: Override print driver execution compatibility setting reported by print driver

Политика определяет, должен ли Диспетчер печати переопределять режим работы PDI, заданный в драйвере принтера. Т.е. политика активирует выполнение драйверов в изолированном процессе, даже если драйвер принтера не совместим.

Если активировать эту политику, то спулер печати будет игнорировать флаг совместимости, заданный для драйвера принтера. Если отключить или не настраивать эту политику, print spooler будет использовать тот режим изоляции, который задан по-умолчанию в драйвере принтера.

Помимо технологии Printer Driver Isolation в Windows 7 и Windows 2008 появилась еще очень удобная технология, позволяющая существенно облегчить работы по управлению драйверами печати на терминальных серверах. Познакомится с ней можно в статье Easy Print в Windows 2008 Server

Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *