Падіння служби диспетчера друку (ака print spooler) внаслідок помилок в драйверах друку є суттєвою проблемою ОС сімейства Windows. Проблема посилюється тим, що помилки з драйверами друку досить важко діагностувати, а виявлення проблемного драйвера може стати головним болем для системного адміністратора. Найгірше що, збій драйвера друку принтера, завантаженого в процес черги друку, викликав збій самого спулера, в результаті в результаті вся система друку сервера перестає працювати, і ці наслідки зачіпають велику кількість користувачів і принтерів. Однак разом з виходом Windows 2008 R2 і Windows 7 всі ці проблеми повинні залишитися в минулому, адже в цих ОС з’явилася технологія Printer Driver Isolation (Ізоляції драйверів принтерів).

Додаток Підсистема спулера припинив роботу

Як випливає з назви, технологія Printer Driver Isolation (PDI) реалізує ізоляцію драйверів принтерів в окремі процеси, відокремлені від процесу диспетчера друку (spoolsv.exe). Тому, якщо трапляється будь-яка помилка в драйвері принтера, то вона зачіпає тільки процес, які довантажити цей драйвер, а не процес spoolsv.exe, тим самим запобігаючи його падіння і покращуючи надійність сервера друку. Крім того, ця нова функція забезпечує можливість ізоляції нових версій драйверів з метою тестування або налагодження, а також можливість виявити зіпсований драйвер.

Процес, який здійснює завантаження драйверів, які повинні працювати ізольовано від «Диспетчера Печатки», називається PrintIsolationHost.exe.

Існує три режими роботи технології ізоляції драйверів:

  • Жоден – Драйвера принтерів завантажуються процесам диспетчера друку (spooler), тобто в цьому режимі система працює як зазвичай
  • Спільний – Драйвера налаштовані на роботу з одним загальним екземпляром процесу PrintIsolationHost.exe, відокремленого від процесу spoolsv.exe. Це режим роботи за замовчуванням.
  • Ізольовані – Кожен драйвер принтера налаштований на використання свого власного примірника процесу PrintIsolationHost.exe.

Щоб перевірити, чи підтримує драйвер принтера технологію PDI: перейдіть в наступну гілку реєстру.
HKLM SYSTEM CurrentControlSet Control Print Environment <середовище> Драйвери Версія-3 <драйвер> PrinterDriverAttributes

Можливі значення:
0: Драйвер не підтримує PDI
2: Драйвер принтера підтримує PDI

Якщо ж значення відсутній, значить воно дорівнює 0, і драйвер PDI не підтримує

Як змінити режим роботи Printer Driver Isolation

Є кілька способів налаштувати режим роботи режиму ізоляції драйверів друку:

  • Конфігурація за допомогою INF-файлу драйвера друку
  • Консоль Print Management Console (PMC)
  • групові політики

INF файл драйвера друку

За допомогою inf файлу драйвера принтера можна визначити, чи підтримує драйвер PDI чи ні. Цей inf файл містить ключ Ізоляція драйвера, Який визначає підтримку PDI. Відповідно, якщо значення цього параметра 0, Значить даний драйвер PDI не підтримує.

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

За допомогою нової консолі управління принтерами (PMC) можна досить просто управляти ізоляцією драйверів. Якщо відкрити консоль PMC і перейти в розділ драйверів, то в правій панелі можна побачити список встановлених в системі драйверів, а в колонці Driver Isolation буде відображатися режим роботи PDI драйвера принтера.

Консоль Print Management, Режим ізоляції драйверів PDI

Щоб змінити режим роботи драйвера, потрібно натиснути правою кнопкою по потрібному драйверу і вибрати опцію ‘Встановити ізоляцію драйвера‘. Доступні такі опції:

  • Жоден
  • Спільний
  • Ізольовані
  • Системне за замовчуванням (немає)

Примітки:

  • Варіант Система За замовчуванням – означає, що драйвер працює у відповідності зі своїми стандартними настройками або настройками групової політики.
  • Також якщо групова політика ‘Execute Print drivers in isolated processes’ відключена (Disabled), тоді режим ізоляції PDI поміняти не вийде.

Консоль Print Management, Режим Printer Driver Isolation

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

Існує дві настройки групової політики, що дозволяють налаштувати режим ізоляції драйверів принтерів. Знайти їх можна в розділі:

Конфігурація комп’ютера Адміністративні шаблони Принтери.

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

  • Execute print drivers in isolated processes (Виконувати драйвери принтерів в ізольованих процесах)
  • Override print driver execution compatibility setting reported by print driver (Відхилити параметр сумісності виконання драйвера друку)

Політика: Виконайте драйвери друку в ізольованих процесах

Налаштування цієї політики визначають чи будуть драйвера принтера виконуватися в одному або окремих процесах. Якщо драйвера принтерів завантажені ізольованим процесом (або процесами), то будь-який збій в драйвері друку не приведе до падіння служби Print Spooler.

У тому випадку якщо ви активували або не налаштовувати цю політику, Диспетчер друку виконуватиме драйвера в ізольованому процесі.

Якщо ви вимкніть цю політику, то драйвера принтерів будуть виконуватися в процесі диспетчера друку (як в версіях Windows XP / 2003 і попередніх версіях ОС).
Політика: Замінити налаштування сумісності драйвера друку, повідомленого драйвером принтера

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

Якщо активувати цю політику, то спулер ігноруватиме прапор сумісності, заданий для драйвера принтера.

Якщо відключити або не налаштовувати цю політику, print spooler буде використовувати той режим ізоляції, який заданий за замовчуванням в драйвері принтера.

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

Leave a Reply

Your email address will not be published. Required fields are marked *