Изоляция драйвера принтера windows server 2008

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

Обновлено 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: перейдите в следующую ветку реестра.

HKLMSYSTEMCurrentControlSetControlPrintEnvironmentsвыбор версии ОСDriversVersion-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:WindowsSystem32DriverStoreFileRepository

файл 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 ConfigurationAdministrative TemplatesPrinters / Конфигурация компьютера/Административные шаблоны/Принтеры

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

  • 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

Как решить проблемы подсистемы печати в терминальном сервере

Приветствую, %habrausername%!

Сегодня я бы хотел поделиться своим опытом устранения проблем печати на терминальном сервере Microsoft.

Подробности под катом.

Вместо Intro

Наверняка, почти каждый системный администратор, работающий с Windows и, в частности, с терминальным сервером, сталкивался с проблемами печати.
Разрывается телефон, у всех одна и та же проблема: «Нажимаю на печать — ничего не происходит!». Идем смотреть логи и видим следующую картину:

image

Знакомо? Никаких подробностей, ничего — гадайте, господа администраторы! На форумах в интернете полно вопросов по этой теме и очень мало полных, структурированных ответов. Что ж, попробуем собрать в кучу все варианты решений.

Причины и решения

Итак, из-за чего может происходить подобная ситуация? Большую часть подобных ситуаций вызывают установленные на сервере драйверы.

  • Необходимо помнить, что драйверы у клиентов и на сервере должны быть идентичны
  • Убедитесь, что включена изоляция драйверов
  • Удалите все драйвера на сервере и попробуйте использовать TS Easy Print
  • Попробуйте решения сторонних компаний

А теперь пройдемся подробнее по всем пунктам. Для начала установим на наш терминальный сервер роль «Службы печати и документов».

image

Это позволит нам удобно управлять драйверами и принтерами, установленными в системе.

Идентичные драйвера

Думаю, тут особо не о чем рассказывать. Стоит помнить, что драйвера необходимо брать с официальных страниц изготовителя принтера. Так же еще один момент — стабильнее всего ведут себя PCL5. Если есть возможность выбора между PCL5 и PCL6 — стоит установить PCL5 (соответственно, серверу и клиенту).

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

В Windows 2008 появилась замечательная возможность изоляции драйверов принтера. Теперь драйвер принтера подгружается не Spoolsv.exe а специальным процессом PrintIsolationHost.exe. При «вылетании» драйвера принтера «слетает» только один экземпляр PrintIsolationHost.exe, а сама служба «Диспетчера печати» остается работоспособной, что, как понимаете, весьма влияет на настроение пользователей ;)

Чтобы включить данную возможность, нам необходимо открыть редактор локальной групповой политики (gpedit.msc) и пройти следующим путем: «Параметры компьютера -> Административные шаблоны -> Принтеры». Находим и включаем следующие пункты:

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

Будет выглядеть следующим образом:

image

TS Easy Print

Видимо, вняв наконец стенаниям системных администраторов, компания Microsoft решила что-то сделать с необходимостью ставить зоопарк драйверов на терминальный сервер и падающим из-за этого spoolsv.exe. В итоге, на свет родилась технология TS Easy Print. Ключевой особенностью является, то, что больше нам не нужно устанавливать на сервер драйвера для каждого принтера — вместо этого используется унифицированный драйвер Remote Desktop Easy Print, соответственно, мы уходим от проблемы падающего спулера — ведь все операции с печатью выполняются на компьютере клиента.
Для того, чтобы явно определить, что мы хотим использовать на терминальном сервере TS Easy Print, необходимо пройти опять же в редактор локальной групповой политики (gpedit.msc) по следующему пути: «Параметры компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров». Нас интересуют следующие пункты, которые надо включить:

  • Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола
  • Перенаправлять только используемый по умолчанию принтер клиента

Второй пункт необходим, если мы хотим, чтобы в терминале у клиента был только его принтер по умолчанию.

image

Далее, необходимо очистить наш сервер от лишних драйверов принтеров. Это можно сделать в менеджере роли «Службы печати и документов».
Внимательно удаляйте драйвера! Необходимо оставить в живых такие вещи, как «Remote Desktop Easy Print» и «Microsoft XPS Document Writer». Именно они и отвечают за передачу печати на клиента.

Теперь перейдем к требованием на клиенте. Их всего два — использование протокола RDP версии не ниже 6.1 и .NET Framework 3.0 с пакетом обновления 1 (SP1). Больше от них ничего не требуется.

Решения сторонних компаний

Избавиться от проблемы падающего спулера призваны такое ПО как, например, ScrewDrivers (сайт). Оно предоставляет клиент-серверную архитектуру.
Сервер ScrewDrivers — это компонент, который необходимо установить на серверы, на которых планируется использовать печать в терминальном сеансе. Клиент ScrewDrivers должен быть установлен на рабочих станциях. Именно этот компонент позволяет создать на терминальном сервере виртуальные принтеры, которые соответствуют локальным принтерам пользователя.
В целом, напоминает Easy Print, но не бесплатно (впрочем, есть лекарства ;).

Заключение

На этом хочу откланяться. Возможно информация не полная — буду рад услышать дополнения. Надеюсь, это поможет кому-то избежать часов нервотрепки ;)
Удачи!

Учитывая мобильность современных офисных сотрудников и огромное количество устройств, которыми они пользуются, сейчас как никогда важно, чтобы возможности печати шли в ногу со временем. К тому же пользователям и организациям необходимы механизмы для безошибочной и стабильной работы с устройствами печати. Системы Windows Server 2008 R2 и Windows 7 предоставляют несколько функций, которые меняют подход к работе с устройствами печати в целом

В то время как мы движемся в «мир без бумаги», в котором почти все наши данные будут храниться в электронном виде, появление статьи о новых возможностях печати в системах Windows Server 2008 R2 и Windows 7 может показаться странным — как если бы я написал что-нибудь на тему «Интернет — это нечто важное» или «Станут ли планшетные компьютеры популярны?». Однако, если вы спросите человека, сидящего рядом с принтером в вашем офисе, стали ли люди печатать меньше, скорее всего, он ответит отрицательно.

.

Возможности пользователя

Некоторые функции клиентской системы помогают значительно упростить работу конечного пользователя. Два наиболее заметных улучшения адресованы пользователям мобильных устройств и затрагивают механизмы доступа к компьютерам из различных мест, в том числе функции удаленной печати и выбора принтера «по умолчанию».

Печать на удаленном компьютере с Windows 7. Печатать данные из удаленного сеанса через протокол удаленного рабочего стола RDP при использовании традиционных служб Terminal Services было непросто. На каждом сервере терминалов приходилось устанавливать все драйверы принтеров, которыми могли бы пользоваться подключающиеся клиентские системы, чтобы локальные принтеры пользователей могли быть перенаправлены в удаленную сессию, а данные можно было корректно обработать на сервере терминалов и затем отправить клиенту для печати на локальном устройстве. Слишком часто драйверы для принтера отсутствовали или были неверной версии, что приводило к невозможности печати (это в лучшем случае, а в худшем уничтожался маленький перуанский тропический лес, пока печатались страница за страницей со случайными символами).

Платформа Server 2008 решает данную проблему с помощью механизма Terminal Services Easy Print. Эта новая модель печати «без драйверов» использует файлы Microsoft XML Paper Specification (XPS), которые по аналогии с файлами PDF содержат и данные, и форматирование. В отличие от сервера терминалов, который выполнял преобразование данных в специальный формат для печати, служба TS Easy Print создает универсальный документ XPS. Этот документ отправляется по протоколу RDP на устройство клиента, что позволяет ему выполнять на основе полученного файла XPS преобразование данных для принтера, используя драйверы, установленные локально. Если пользователь в удаленной сессии посмотрит свойства принтера, подключение RDP перехватит этот запрос и покажет свойства локального принтера, а затем отправит любые параметры форматирования обратно в удаленный сеанс. Таким образом, возможность настройки драйвера локального принтера не будет утеряна, даже если данный драйвер не установлен на сервере терминалов.

Хотя печать «без драйверов» — это значительный шаг вперед для механизма удаленных сеансов на основе Terminal Services, система Windows Vista не включала эту функцию. Когда компания Microsoft выпустила инструментарий для Virtual Desktop Infrastructure (VDI), а подход с использованием удаленных сеансов для подключения к виртуальным операционным системам получил широкое распространение, возможность применения функций печати при подключении к клиентским системам через протокол RDP стала обеспечивать огромные преимущества. Системы Windows 7 Enterprise и Windows 7 Ultimate поддерживают функцию Remote Desktop Easy Print. Служба Terminal Services в системе Server 2008 R2 была переименована в Remote Desktop Services (RDS), и с тех пор для механизма печати используется название Remote Desktop Easy Print, вместо Terminal Services Easy Print.

Функциональные возможности службы Easy Print больше не зависят от того, установлен ли пакет. NET Framework на устройстве клиента. Теперь преобразование XPS-в-GDI (формат принтера) производится непосредственно операционной системой. Используя функцию Easy Print при подключении к удаленной системе версии Windows 7 Enterprise или Ultimate и включив переадресацию принтера, можно увидеть принтер, установленный «по умолчанию», а также все доступные принтеры. Если вы посмотрите на параметр Model в настройках принтера «по умолчанию», то увидите, что он имеет значение Remote Desktop Easy Print (экран 1). Если выбрать пункт Printing Preferences в контекстном меню, вы увидите дополнительные настройки печати для локальной операционной системы. При работе с дополнительными свойствами принтера диалоговое окно, содержащее значения свойств, на самом деле перенаправляется в локальную клиентскую систему, в которой установлен полностью функциональный драйвер для принтера, ведь дополнительные настройки у каждого драйвера свои. В диалоговом окне, показанном на экране 2, видно, что свойства были перенаправлены. Так как механизм Easy Print является функцией протокола RDP 6.1, клиентские системы Vista SP1 и Windows SP3, в которых установлены приложение Remote Desktop Connection Client 6.1 или его более новые версии, а также пакет. NET Framework, могут пользоваться возможностями Easy Print при подключении к операционным системам Windows 7 Enterprise или Ultimate через протокол RDP.

Просмотр свойств принтера
Экран 1. Просмотр свойств принтера

Как показано на экране 2, даже при отсутствии драйвера в удаленной системе можно просмотреть дополнительные параметры, просто открыв окно свойств в локальной системе, после чего любые изменения в списке выбранных параметров и в настройках форматирования будут переданы в удаленный сеанс. Диалоговое окно Printing Preferences обычно загораживает окно, уведомляющее о перенаправлении, однако я его передвинул, и теперь вы можете увидеть, что на самом деле окно Printing Preferences отображается поверх окна удаленного сеанса, так как он запускается из локальной операционной системы с использованием локально установленного драйвера.

Перенаправление свойств принтера с помощью Easy Print
Экран 2. Перенаправление свойств принтера с помощью Easy Print

Каким принтером пользоваться. Easy Print — удивительная технология, позволяющая предоставить локальные принтеры удаленным системам, не беспокоясь о наличии драйверов. Следующей задачей для мобильных сотрудников является выбор принтера, которым они будут пользоваться. Я беру с собой ноутбук, перемещаясь между несколькими офисными зданиями, а также пользуюсь им дома. Много раз, находясь дома, я просто нажимал кнопку Print, не указывая принтер для печати, и соответственно по ошибке посылал личный документ на рабочий принтер. Из-за этого на следующий день я вставал раньше обычного, чтобы успеть забрать свой документ до того, как это сделает кто-нибудь из коллег. Поэтому необходимо, чтобы принтер «по умолчанию» выбирался на основании текущего местоположения.

Для решения этой проблемы существуют корпоративные продукты, и в последние несколько лет уровень их возможностей сильно вырос. Хотя данный раздел относится к работе с клиентскими системами, следует обсудить и серверные компоненты, так как при выборе вариантов важно учитывать возможности сервера.

Изначально подходы к решению проблемы автоматического выбора принтера основывались на сценариях регистрации в системе, которые проверяли свойства системы, такие как IP-адрес, и затем добавляли определенные принтеры, обслуживаемые через сценарии. Реализация данного подхода в больших средах представляла собой трудную задачу. Первое по-настоящему крупное достижение в этой области связано с выпуском консоли Print Management Console (PMC) для системы Windows Server 2003 R2. Помимо создания централизованного пункта управления для серверов печати Windows и возможности автоматического определения принтеров, консоль PMC также предоставляла механизмы установки принтеров, использующие наборы опубликованных принтеров, указанные в объектах Group Policy Objects (GPO), и исполняемый файл PushPrinterConnections.exe. Этот исполняемый файл добавлялся в сценарий регистрации пользователя в системе или в сценарий запуска компьютера, проверял объекты GPO на наличие принтеров и настраивал найденные принтеры на компьютере. Так как объекты GPO могут быть связаны с доменом, организационным подразделением (UO) или сайтом, решение обеспечивало гибкость при выборе принтера. Файл PushPrinterConnections.exe был необходим, так как для элементов объекта GPO, отвечающих за настройку принтера, отсутствовало клиентское расширение CSE.

Система Server 2008 подняла механизмы развертывания принтеров на новый уровень с помощью клиентских расширений CSE для механизмов консоли PMC. С появлением этих расширений отпала необходимость в файле PushPrinterConnections.exe. Настройка нескольких объектов GPO на уровне сайта обеспечивает плавное переключение между принтерами, когда пользователи перемещаются, при этом принтер «по умолчанию» настраивается автоматически.

Функция Deployed Printers консоли PMC весьма полезна, однако технология Group Policy Preferences в системе Server 2008 предоставляет еще более гибкий механизм назначения принтеров пользователям, из-за чего многие организации отказываются от использования технологии Deployed Printers. В отличие от механизма групповой политики Group Policy, который задает политику для клиентской системы и запрещает любые изменения в ней, технология предпочтений групповой политики Group Policy Preferences позволяет создавать конфигурации компьютера, которые могут быть изменены конечными пользователями. Эта технология позволяет создавать начальную конфигурацию, которая не является окончательной. С помощью механизмов Group Policy Preferences мы можем периодически переназначать параметры предпочтения, перезаписывая любые изменения, которые внес пользователь, либо можем установить параметры предпочтения в начальное состояние и забыть о них, так что пользователь сможет делать с ними все, что угодно.

Чтобы настроить предпочтения Group Policy Preferences для принтеров на уровне пользователя, необходимо открыть объект GPO и зайти в разделUser ConfigurationPreferencesControl Panel SettingsPrinters. Также можно при необходимости настраивать этот параметр на уровне компьютера. Чтобы добавить новый принтер, щелкните правой кнопкой и выберите пункт New, а затем укажите тип принтера. Как показано на экране 3, принтер может быть общим, подключенным по протоколу TCP/IP или локальным.

Использование Group Policy Preferences для добавления нового принтера
Экран 3. Использование Group Policy Preferences для добавления нового принтера

Если выбрать добавление общего принтера, вам будет предложено найти нужный принтер в каталоге Active Directory (AD) — необходимым условием является публикация принтеров в AD, которая легко настраивается через консоль PMC. Также можно указать, является ли это устройство принтером «по умолчанию» и будет ли оно оставаться таковым в случае подключения локального принтера (экран 4).

Настройка общего принтера
Экран 4. Настройка общего принтера

Так как предпочтения Group Policy Preferences являются частью объектов GPO, мы можем связывать их с сайтом, подразделением или доменом. Если необходимо устанавливать принтеры на основе расположения, можно связать объект GPO с сайтом, и в момент, когда клиентские системы обновят свои политики, в них будут добавлены принтеры, подходящие для данного местоположения пользователя. Однако с помощью предпочтений Group Policy Preferences мы может пойти еще дальше.

Закладка General в окне Shared Printer Properties позволяет выбрать общий принтер и принтер, заданный по умолчанию. Закладка Common, как можно понять по названию, является общей для всех конфигураций Group Policy Preferences, и к тому же открывает доступ к механизму указания принтера, использующему возможности детализации на уровне элемента, обеспечиваемые технологией Group Policy Preferences. Перейдите на закладку Common для нового принтера в Group Policy Preferences, затем выберите пункт Item-level targeting и нажмите кнопку Targeting, чтобы открыть новый редактор Targeting Editor, который, как показано на экране 5, позволяет создавать очень подробные правила, определяющие, когда вступает в силу соответствующее предпочтение.

Group Policy Preferences открывают практически безграничные возможности
Экран 5. Group Policy Preferences открывают практически безграничные возможности

Примечательно, что указание применяется только к определенному параметру предпочтений (то есть только к принтеру, а не ко всему объекту GPO). Такой подход позволяет в одном объекте GPO определить несколько принтеров, и каждый будет выбран по-своему. Посмотрите на набор критериев указания, приведенный на экране 5: вы заметите, насколько гибким может быть механизм выбора. Можно устанавливать принтеры на системы, входящие в определенный диапазон IP-адресов. Данный критерий, по сути, аналогичен выбору сайта AD, но позволяет сделать более подробную выборку, чем при использовании конфигураций сайта. Можно назначать принтеры на основе членства в группе, что в случае с обычными объектами GPO представляет собой трудоемкий процесс. Можно указывать принтеры с учетом времени суток, типа компьютера или типа сетевого соединения — у нас большая свобода действий. Если вы еще не пробовали поработать с Group Policy Preferences, советую это сделать. Если у вас используется много пользовательских сценариев, то с помощью Group Policy Preferences вы сможете упразднить большинство из них за ненадобностью.

В корпоративной среде настроить принтер «по умолчанию» с помощью передовых административных средств планирования и подстройки довольно просто. Но как поступить, если вы подключаетесь к множеству персональных сетей или если пользователи сами хотят управлять своими принтерами «по умолчанию» в зависимости от местоположения? В Windows 7 добавлена новая функция — печать с учетом сетевого расположения, — которая использует службу сведений о подключенных сетях, появившуюся в системах Server 2008 и Vista. Основываясь на различных сетевых параметрах (например, наличии беспроводных сетей, доступности контроллеров домена) мы можем назначить различные сети, которые будем использовать в настройках Group Policy, в параметрах межсетевых экранов и в других механизмах систем Server 2008 и Vista. Назначенные сети можно задействовать в системе Windows 7 и с помощью функции печати с учетом сетевого расположения настраивать для них по умолчанию различные принтеры.

Процесс настройки печати с учетом сетевого расположения довольно прост. Выбираем пункт Devices and Printers в меню Start, потом выбираем действие Manage default printers, чтобы открыть диалоговое окно, показанное на экране 6. Затем можно выбрать вариант, позволяющий всегда использовать один и тот же принтер по умолчанию, что, очевидно, приведет к невозможности печати с учетом сетевого расположения, либо вариант, позволяющий менять принтер, заданный по умолчанию, — в этом случае можно задать принтер по умолчанию для каждой известной сети. Когда вы подключитесь к новой неизвестной сети, текущий принтер, заданный по умолчанию, автоматически станет принтером по умолчанию для этой сети. Впрочем, данный параметр можно изменить.

Настройка принтеров по умолчанию для различных сетей
Экран 6. Настройка принтеров по умолчанию для различных сетей

Если вы подключитесь к нескольким сетям одновременно (например, к проводной сети и к беспроводной), то принтер, заданный «по умолчанию» для управляемой проводной сети, будет иметь приоритет над беспроводной сетью, которую сохранил пользователь. Более того, сохраненная беспроводная сеть будет иметь приоритет над неуправляемой проводной сетью. Если вы не можете обнаружить действие Manage default printers на своем компьютере или сервере, то это потому, что данный механизм доступен только на мобильных компьютерах (то есть ноутбуках) с установленной системой версии Windows 7 Home Premium или выше и отсутствует в любой серверной версии Windows.

Возможности администратора

Так как печать — процесс, инициируемый пользователем, неудивительно, что две наиболее интересные функции, Easy Print и функция печати с учетом сетевого расположения, использующая Group Policy Preferences, ориентированы на пользователя. В системах Server 2008 R2 и Windows 7 также усовершенствованы механизмы администрирования с точки зрения управления, что позволяет сократить объем работы подразделения ИТ.

Наиболее значимое изменение, касающееся служб печати, в системе Server 2008 R2 заключается в том, что печать теперь является частью серверной роли Print and Document Services. Внутри этой роли новая служба Distributed Scan Server обеспечивает возможность централизованного управления сетевыми сканерами с поддержкой технологии Web Services on Devices (WSD) и контроля по аналогии с тем, как принтеры управляются службами печати. В этой статье речь идет о печати, а не о сканировании, поэтому я пока оставлю тему возможностей роли Distributed Scan Server. Однако, если у вас в компании используется множество сканеров, роль Distributed Scan Server безусловно будет полезна для вашего окружения.

Изоляция драйвера для принтера. Я считаю, что главным улучшением в производительности и в обеспечении поддержки механизмов печати в системе Server 2008 R2 стала новая возможность изоляции драйвера для принтера («песочница»). До появления системы Server 2008 R2 компоненты драйвера печати загружались в том же процессе, что и очередь печати принтера. Часто в работе драйверов происходили сбои, что приводило к разрушению всей очереди печати, и при этом останавливалась вся служба печати для всех пользователей и принтеров на сервере. Изоляция драйвера для принтера позволяет запускать компоненты драйвера печати в отдельном от очереди печати процессе, и это означает, что сбой в работе драйвера больше не разрушит очередь печати и никак не отразится на других принтерах системы. Мы можем пойти дальше и настроить особые драйверы печати, которые будут запускаться в собственных изолированных процессах, что весьма полезно, если у нас есть новые драйверы или драйверы с известными ошибками. Эти драйверы, запущенные в собственных процессах, могут остановить работу своих принтеров, — но не остальных.

Настройка изоляции драйвера для принтера осуществляется не средствами принтера, а средствами драйвера. Для этого нужно запустить консоль PMC, перейти к узлу Print Servers — <имя сервера> — Drivers, щелкнуть правой кнопкой мыши по драйверу и выбрать режим изоляции, как показано на экране 7. Можно выбрать одно из следующих значений.

  • None — загружает компоненты драйвера печати в процесс очереди печати, эмулирует поведение систем с версией ниже Server 2008 R2.
  • Shared — загружает множество драйверов в отдельный процесс, защищая очередь печати от сбоев в работе драйвера. Сбой в работе драйвера в общем процессе повлияет на работу остальных драйверов. Используйте этот режим только для известных, корректно работающих драйверов.
  • Isolated — загружает драйвер в собственный процесс, защищая очередь печати и другие драйверы от сбоя изолированного драйвера. Используйте это значение для неизвестных или проблемных драйверов.
Настройка изоляции драйверов печати
Экран 7. Настройка изоляции драйверов печати

Хотя изоляция драйвера для принтера является основным нововведением в системах Server 2008 R2 и Windows 7, повышающим надежность, данные системы обеспечивают и улучшение производительности, в том числе содержат изменения в механизме очереди печати как на серверной, так и на клиентской стороне, позволяющие сократить время регистрации в системе и уменьшить время запаздывания со стороны сервера при работе с уведомлениями. Уменьшение частоты оповещений печати заставляет очередь быстрее реагировать на изменения и повышает эффективность ее обработки.

Помощь в администрировании. Управление печатью начинается с консоли PMC. Улучшения в PMC, представленные в системах Server 2008 R2 и Windows 7 и позволяющие получить больше информации в обзорах Printers and Drivers, относятся к двум основным группам функций (помимо улучшений в пользовательском интерфейсе).

Первая группа функций реализует возможность настройки разрешений по умолчанию, которые автоматически применяются к любым новым очередям, созданным на сервере. Эта функция избавляет нас от необходимости вручную повторять подтверждение каждый раз при добавлении новой очереди печати на сервер. Чтобы задать уровень безопасности по умолчанию, который будет применяться для новых очередей печати, откройте свойства сервера печати и выберите закладку Security, показанную на экране 8. Следует отметить, что изменения не будут применены для текущей очереди.

Настройка прав, по умолчанию применяемых к новым очередям печати
Экран 8. Настройка прав, по умолчанию применяемых к новым очередям печати

На экране 8 видно, что, помимо прочего, можно назначить пользователям права на управление принтером, управление документами и управление сервером. Пользователи с такими разрешениями автоматически становятся администраторами сервера печати. С другой стороны, вы можете дать пользователям сокращенный набор разрешений — в зависимости от потребностей вашей организации.

Другим важным дополнением является возможность создавать отфильтрованные обзоры в консоли PMC на основе информации о принтере и драйвере. Эта мощная функция позволяет администраторам с помощью узла Custom Filters консоли PMC создавать множество обзоров, позволяющих анализировать огромное количество параметров принтеров и драйверов. Такие параметры, как количество заданий в очереди, статус и местоположение, можно использовать для создания обзоров, которые позволят администраторам быстро просматривать информацию об устройствах, принадлежащих к различным группам и расположенных в разных местах (например, получить список устройств, работающих в определенном режиме, или список очередей, количество элементов в которых выше определенного значения). На экране 9 показаны параметры настройки фильтрации для принтера и для драйвера. И, как вы могли заметить, для каждого фильтра можно заполнить несколько полей, которые задают определенные условия и значения, при которых эти условия будут считаться выполненными.

Параметры настройки фильтрации для принтера и для драйвера
Экран 9. Параметры настройки фильтрации для принтера и для драйвера

Печать без проблем

Можно не признавать важность печати, но эта функция до сих пор имеет большое значение для организаций. Системы Server 2008 R2 и Windows 7 предоставляют новые возможности, которые позволяют удовлетворять потребности мобильных пользователей. Список нововведений включает различные технологии, которыми пользователи могут воспользоваться для подключения к службам и получения доступа к средствам печати. Даже с ростом требований, предъявляемых организациями к механизмам печати, доступ к устройствам печати должен быть непрерывным.

Джон Сэвилл (jsavill@windowsitpro.com) — директор по технической инфраструктуре компании Geniant, имеет сертификаты CISSP, Security and Messaging MCSE для Windows Server 2003 и звание MVP

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

Spooler SubSystem App has stoped working

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

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

Существует три режима работы технологии изоляции драйверов:

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

Чтобы проверить, поддерживает ли драйвер принтера технологию PDI: перейдите в следующую ветку реестра.
HKLMSYSTEMCurrentControlSetControlPrintEnvironments<environment>DriversVersion-3<driver>PrinterDriverAttributes

Возможные значения:
0: Драйвер не поддерживает PDI

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

Если же значение отсутствует, значит оно равно 0, и драйвер PDI не поддерживает

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

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

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

INF файл драйвера печати

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

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

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

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

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

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

Примечания:

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

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

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

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

Computer ConfigurationAdministrative TemplatesPrinters.

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

  • 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

Проблемы с печатью из RDP или Терминальный сервер Windows VS Принтеры
 Распечатать статью

То, что RDP и принтеры понятия хоть и совместимые, но плохо, известно давно. Но функционал этот всегда был востребован и будет востребован в будущем. Проблемы печати с терминальных серверов Windows уже много лет являются головной болью для большинства системных администраторов и ИТ-менеджеров. В рамках данной статьи мы рассмотрим основные методы «борьбы с глюками» печати из сессий удаленных рабочих столов.

Сразу оговорюсь, что в рамках этой статьи печать из терминальных ферм на Citrx’е не рассматривается.

Большинство проблем с печатью на терминальных серверах вызваны установленными на них драйверами принтеров.

  • Из практики, больше всего проблем с драйверами от принтеров фирмы Cannon. Не воспринимайте как анти-рекламу, просто опыт.

На верхнем уровне причины этих проблем можно разделать следующим образом.

  1. Неидентичные версии драйверов на клиентской машине и на терминальном сервере.
  2. Нестабильность драйверов в терминальной среде.
  3. Высокая нагрузка на службу «диспетчер очереди печати»
  4. Отсутствие работоспособных драйверов для терминальных серверов.

Итак, перейдем теперь к решениям.

Версии драйверов.

Драйверы различных версий на сервере и клиентских машинах (в общем, то это первое, что нужно проверить) должны быть идентичны в т. ч. и с точки зрения версии PCL. Если версии отличаются то, скорее всего печати нам не видать. Также можно отметить, что когда стоит выбор использовать PCL5 или PCL6, лучше устанавливать драйверы PCL5, т.к. на практике они работают намного стабильнее.

Высокая нагрузка и нестабильность драйверов в терминальной среде.

Нестабильная работа драйверов и, соответственно, перегрузка ими диспетчера очереди печати (по русски – «спулера») вызывала (и будет вызывать, если не чего не делать), остановку всего процесса печати на сервере, а иногда и остановку (зависание) ОС сервера в целом.

До выхода Windows Server 2008, штатных средств по оптимизации нагрузки спулера в ОС Windows Server не было. Поэтому единственным адекватным методом борьбы с регулярным зависанием спулера (и соответственно, массовыми звонками в тех. поддержку от разгневанных пользователей), был bat-ник, по расписанию превентивно перезапускающий процесс spoolsv.exe (например, утром и в обеденное время), освобождая спулер от висящих запросов и очередей.

С выходом Windows Server 2008 появилась возможность изоляции драйверов принтера. Данная возможность позволяет драйверу принтера подгружать задачи не в Spoolsv.exe, а специальный под-процесс PrintIsolationHost.exe. При такой конструкции, зависание драйвера одного принтера, не вешает всю очередь печати, поскольку встает только один под-процесс PrintIsolationHost.exe, а сам процесс спулера spoolsv.exe остается работоспособным.

Для того чтобы включить изоляцию драйверов принтеров, нужно использовать редактор локальной групповой политики (gpedit.msc):

  • Откройте gpedit.msc и последовательно перейдите:
  • Параметры компьютера (Computer Configuration) -> Административные шаблоны (Administrative Templates)-> Принтеры (Printers).
  • Среди перечня политик нужно включить следующие:
  • Выполнить драйверы принтеров в изолированных процессах (Execute print drivers in isolated processes)
  • Переопределить параметр совместимости выполнения драйвера печати, назначенный драйвером печати (Override print driver execution compatibility setting reported by print driver)

PP1

Выполнив данные незатейливые действия, мы сильно разгрузим спулер, резко снизив частоту его падений, уберём «деревянный костыль» в виде bat-ника и, как результат,  повысим лояльность пользователей и руководства к ИТ :-).

К сожалению, данная функция никак не решит проблему отсутствия работоспособных драйверов для терминальных сред или слишком высокой нагрузки на спулер (например, когда на сервере установлены 10-ки разных драйверов разных устройств).

Поэтому помимо изоляции драйверов в Windows Server 2008 также появилась ещё более ценная функция под названием TS Easy Print (Remote Desktop Easy Print). О ней пойдет речь ниже.

Отсутствие работоспособных драйверов для терминальных сред и сверхнагрузка на спулер.

В ситуации, когда с терминального сервера необходимо печатать на 10-ках различных печатающих устройствах (в зоопарке из принтеров, если быть точнее), многие из которых не имеют рабочих драйверов для терминалов, следует применять функцию TS Easy Print.

Главным достоинством этого решения является то, что в принципе не нужно устанавливать драйверы для каждого устройства на терминальный сервер. Вместо этого используется унифицированный драйвер Remote Desktop Easy Print и, соответственно, все операции по печати идут мимо спулера и обслуживаются напрямую клиентской машиной. Благодаря этому значительно повышается стабильность работы, как и самого спулера, так и терминального сервера в целом.

Для использования TS Easy Print не требуется дополнительной установки серверных ролей и компонентов. Требованиями являются лишь наличие на клиентской машине RDP клиента версии 6.1 или выше и .NET Framework 3.0 SP1 или выше.

Для того чтобы явно определить, что нужно использовать на терминальном сервере TS Easy Print, необходимо также воспользоваться редактором локальной групповой политики (gpedit.msc):

  • Откройте gpedit.msc и последовательно перейдите:
  • Параметры компьютера (Computer Configuration) -> Административные шаблоны (Administrative Templates) -> Компоненты Windows (Windows Components) -> Службы удаленных рабочих столов (Remote Desktop Services)-> Узел сеансов удаленных рабочих столов (Remote Desktop Session Host) -> Перенаправление принтеров (Printer Redirection).
  • Среди перечня политик нужно включить следующую:
  • Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола (Use Terminal Services Easy Print driver first)

PP2.JPG

После того, как политика активирована, можно удалить лишние драйверы принтеров с сервера. 

  • Будьте внимательны!!! Нельзя удалять Terminal Services Easy Print (он же Remote Desktop Easy Print) и Microsoft XPS Document Writer. Без них перенаправление печати работать не будет.

Удалить лишние драйверы можно с помочью панели управления.

· Панель управления (Control panel) ->Принтеры (printers)-> Свойства Сервера (Server Properties)-> Драйверы (Drivers).

Сразу же оговорка. При печати, используя TS Easy Print могут возникнуть проблемы с отображением шрифтов (т.е. «иероглифы»). Решается проблема просто – нужно установить последнюю версию NET Framework на клиенте.

Дополнительно следует также отметить, что решить проблему «виснущего и вечно падающего» спулера можно также используя коммерческий продукт ScrewDrivers.

ScrewDrivers имеет клиент-серверную архитектуру. Соответственно, серверную часть нужно установить на сервере где планируется использовать печать из терминальных сессий, а клиентскую — на рабочих станциях пользователей.

Клиентский компонент ScrewDrivers создает на терминальном сервере виртуальные принтеры, которые соответствуют локальным принтерам на клиентской машине. Решение вполне стабильное и проверено годами во множестве компаний. Но у него есть один недостаток – оно в отличие от TS Easy Print платное :-).

Из вышеописанного можно сделать вывод, что вечные проблемы с печатью на терминальных серверах решаемы, а решения этих проблем стабильны и проверены.

  • Пробуйте, тестируйте, экспериментируйте и все у вас будет работать долго и счастливо!

В данной заметке поговорим о внедрении и последующем обслуживании сервера печати (по др. принт-сервера) полезной серверной роли в Windows Server 20xx, обеспечивающей эффективный, централизованный контроль за работой всех принтеров в организации.

Внедрение сервера печати, по сравнению с обычной клиентской установкой принтера, сулит следующие преимущества:

  • Возможность централизованного управления всеми принтерами в организации, очередью печати, драйверами.
  • Обеспечение общего доступа к принтерам через публикацию в Active Directory;
  • Возможность разворачивать принтеры при помощи групповой политики;
  • Создавать пулы, что позволяет объединить несколько физических принтеров в один логический.

Исходные условия у нас таковы, что имеется определенный парк сетевых принтеров HP и Kyocera и нам необходимо настроить к ним доступ таким образом, что бы пользователь мог самостоятельно выбирать ближайший к себе принтер и устанавливать себе в систему. Для этого нам как администраторам, необходимо сначала развернуть сервер печати, добавить на него все наши принтеры, опубликовать в Active Directory, обучить пользователей простым шагам по установкедобавлению принтера или устанавливать их в автоматическом режиме при помощи групповой политики. В процессе работы, выполнять простые шаги по администрированию системы и устранять возникающие неполадки с печатью, о чем речь пойдет ниже.

1) Установка роли Print and Document Services (Служба печати и документов);

Итак, у нас имеется машина с установленным Windows Server 2012R2, хотя это может быть и 2008 и последняя на текущий момент Windows Server 2016, т.к. процесс установки службы от версии к версии отличается не сильно и сводится буквально к нескольким кликам по кнопке Далее. Запускаем Server Manager, выбираем Add Role and Features Wizard (Добавить роль и мастер компонентов).

print-server-windows-add-role

Затем соглашаемся с первым пунктом Role-based or feature-based installation (Базовая установка ролей и компонентов) жмем Далее.

print-server-windows-configure-server

На следующем экране Select Destination server (Выбор сервера назначения) выбираем сервер из пула или расположенный на VHD-диске. Поскольку у нас, пока только один локальный сервер, то жмем Next.

Выбираем роль для установки — Print and Document Services, соглашаемся с установкой дополнительных фичей — Print and Document Services Tools. Жмем Next.

На следующем экране Features, опционально выбираем компоненты для установки если нужно. Жмем Next.

print-server-add-role-and-features

Далее нам предлагают ознакомится с полезной информацией по службе печати Print and Document Services. Ознакамливаемся и жмем Next :)

windows-print-and-document-services-etc

Затем выбираем конкретные сервисы для установки. По мимо Print Server (Сервер печати) можно выбрать еще Distributed Scan Server (Распределенный сервер сканирования), Intetnet Printing (Поддержка печати через Интернет) и LPD Service (Служба печати UNIX). В рамках данной заметки нас интересует только cервер печати, поэтому выбираем его и жмем Next.

print-server-add-role-services

На завершающем экране, соглашаемся с установкой выбираемых компонентов нажатием кнопки Install.

print-server-add-role-confirm-install

Закрываем мастер при помощи close.

Те же действия, но в Powershell, можно выполнить буквально в несколько команд:

Fipmo ServerManager
add-WindowsFeature Print-Server

После установки службы, перезагружать сервер не требуется. Но, перед тем как начать добавление принтеров на сервер, добавим его в домен, что позволит в последствии публиковать принтеры сразу в Active Directory.

Используем классический gui-вариант добавления, либо при помощи несложной команды в PS:

Add-Computer -DomainName test.ru

Перезапускаем сервер командой:

2) Консоль управления Print Managment. Добавление драйверов и принтеров на сервер;

Запускаем консоль управления Print Managment. Для этого переходим в ПускAdministrative toolsPrint management. Либо запускаем в командной строке: printmanagement.msc

print-server-print-managment

Здесь, самый верхний узел Print Managment позволяет добавлять/удалять локальные и другие серверы печати для администрирования, а так же выполнять миграцию принтеров.

Custom Filters фильтрует принтеры по категориям: Все принтеры (All Printers), Все драйверы (All Drivers), Принтеры в состоянии «не готов» (Printers Not Ready) и принтеры с активными заданиями печати (Printers With Jobs). Так же, по правой кнопке, можно задать свой фильтр, если вам не хватает текущих.

Print Servers отображает текущие принт-серверы. В данном случае видно что у нас только один (локальный) сервер печати, где Drivers (Драйверы) показывает все драйверы на текущем сервере печати, Forms (Формы) — все поддерживаемые форматы бумаги, Ports — локальные и сетевые порты на текущем сервере печати, Printers — все установленные принтеры на текущем сервере печати.

Deployed Printers — принтеры, которые были развернуты с использованием групповой политики.

Что бы добавить новый принтер на сервер, переходим к узлу Print Servers, выбираем наш локальный сервер prints (local) в разделе Printers. Щелкаемся правой кнопкой и выбираем Add Printers (Добавить принтер). Запустится мастер добавления принтера Network Printer Installation Wizard, где доступно четыре метода установки. Первый и самый быстрый способ обнаружить сетевые принтеры это выполнить поиск в автоматическом режиме — Search the network for printers, вторым пунктом идет возможность добавить TCP/IP принтер или веб принтер по его IP-адресу или имени узла — Add a TCP/IP or Web Services Printer by IP address or hostname, далее идет возможность добавить новый принтер используя существующий порт — Add a new printer using an existing port, и последний пункт, это создание своего порта с последующим добавлением нового принтера — Create a new port and add a new printer.

print-server-network-printer-installation-wizard

Если выбрать первый пункт и позволить мастеру добавить принтер в автоматическом режиме то возникнет ситуация когда драйвер для принтера может быть так же добавлен в автоматическом режиме из дистрибутива операционной системы, что не желательно, поскольку, во-первых драйвер будет далеко не свежим, во-вторых он будет конкретно под данную модель принтера. Если принтеров не много, то в этом нет трагедии — все будет работать, но поскольку у нас принт-сервер, где как правило может быть n-ое количество устройств печати, то имеет смысл использовать самую актуальную версию драйвера с сайта производителя. Лучше использовать универсальный драйвер сразу для нескольких моделей, что позволит избежать в будущем разного рода конфликтов связанных с работой нескольких разношерстных устройств на одном сервере и позволит снизить временные затраты при будущем обновлении. Почитать еще о преимуществах универсального драйвера можно по следующей ссылке.

И всего вышесказанного следует, что для корректной работы системы нам сначала  необходимо установить на сервер правильный драйвер, а затем уже добавлять сами принтеры. Поэтому скачиваем универсальный драйвер с сайта производителя, например для HP  здесь, а для Kyocera тут. Что касаемо типа драйвера, PCL5 или PCL6 то тут решайте сами. Кто то говорит что PCL5 стабильнее, но лично я не заметил особой разницы. По идее PCL версии 6 это просто более новая реализация PCL драйвера от HP, поэтому имеет смысл использовать ее.

Для добавления драйверов, в консоле Print Managment переходим на наш локальный сервер в раздел Drivers и по правой кнопке запускаем мастер добавления драйверов — Add Driver. На следующем экране выбираем тип архитектуры процессора. Если необходима поддержка 32-разрядных клиентских операционных систем то так же отмечаем чекбокс x86. Жмем Далее.

print-server-processor-selection

На экране Printer Driver Selection выбираем драйвер для принтера. Жмем Have Disk и Browse для обзора и добавления драйверов.

print-server-driver-selection

Выбираем ранее скаченный драйвер. В нашем примере это универсальный драйвер Kyocera, жмем Next и Finish. Повторяем операцию для других ваших устройств.

print-server-driver-selection2

Лично у меня на сервере, в ходу принтеры только HP и Kyocera, соответственно и драйверы используются только этих производителей. Правда, надо отметить, что при использовании универсального драйвера от HP, далеко не все принтеры поддерживаются или не все функции поддерживаются корректно, хотя большая часть принтеров корпоративного класса работает без проблем. Посмотреть список поддерживаемых устройств можно по ссылке. После добавления драйверов, получим примерно следующую картинку.

print-server-drivers-complete

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

И в случае режима shared (общий доступ) все драйверы принтера настроены на работу с одним, общим экземпляром процесса PrintIsolationHost.exe, но отдельно от диспетчера печати. Данный режим является рекомендуемым Microsoft. В случае, возникновения проблем с драйверами, несовместимостью и частым падением принтеров, особенно в терминальном режиме, можно попробовать использовать режим isolated (изолированный), где уже каждый драйвер принтера, настроен на использование своего собственного экземпляра процесса PrintIsolationHost.exe и так же отдельно от диспетчера печати (spooler).

При установленном флаге «none», драйверы принтеров загружаются как обычно, при помощи диспетчера печати (spooler), т.е. если падает процесс spoolsv.exe, то это затрагивает работу сразу всех принтеров на сервере.

Теперь, после добавления корректных драйверов можно  приступать к установке принтеров. Для этого снова запускаем уже знакомый нам мастер добавления принтеров, выбираем добавить TCP/IP принтер или веб принтер по его IP-адресу. Затем выбираем тип устройства: Auto detect — автоматическое определение параметров или TCP/IP Device, в поле «host name or IP address» вводим IP-адрес сетевого принтера. Галочку Auto detect the printer driver to use (Автоматический поиск драйвера принтера) оставляем по умолчанию активной или снимаем. В данном случае она не препятствует процессу добавления «правильного» драйвера.  Жмем Next.

print-server-printer-address

На следующем экране, выбираем ранее установленный универсальный драйвер HP или Kyocera из списка или добавляем новый. Жмем Next.

print-server-printer-driver

Затем, задаем имя принтеру и добавляем его в общий доступ, указав имя расшаренного ресурса, физическое расположение и комментарий. По этой информации пользователи смогут идентифицировать нужный им принтер в службе каталогов и добавить его к себе в систему. Жмем Next.

print-server-printer-name-and-sharing

Соглашаемся с предложением установить принтер. Жмем Next и дожидаемся окончания процесса установки.

print-server-printer-found

Затем, что бы принтер был доступен в Active Directory для выбора, необходимо его опубликовать. Для этого переходим в свойства принтера на вкладку Sharing и отмечаем галочку List in Directory (Внести в Active Directory) и жмем Apply (Применить).

print-server-printer-active-directory

Проделываем ту же операцию для всех принтеров в организации. Можно выделить все принтеры сразу и по правой кнопке сказать: List in Directory. В итоге, можно получить примерно следующий список.

print-server-printer-managment

Теперь, на клиентском компьютере в домене, пользователь сможет увидеть нужный ему принтер в списке и установить его.

print-server-add-printer-client

Но это в теории, или по крайней мере так было раньше! На практике, при добавлении сетевого принтера под доменной учетной записью, нередко можно получить следующую ошибку:

Подключение к принтеру. Установленная на данном компьютере политика не позволяет подключение к данной очереди печати. Обратитесь к системному администратору.

Или английский вариант:

Connect to Printer. A policy is in effect on your computer which prevents you from connecting to this print queue. Please contact your system administrator.

print-server-сonnect-to-printer-error

Связано это с тем, что 12 июля 2016 года Microsoft выпустила обновление безопасности KB3170455, устраняющее критическую уязвимость в системе печати, что повлекло за собой новые требования к безопасности драйверов принтера, а именно:

1. Драйвер принтера должен быть доверенным и подписан цифровой подписью. Процесс установки проверяет наличия хешированных файлов в пакете драйвера, и если обнаруживает не хешированные (без цифровой подписи), то выводит сообщение об ограничениях существующей политики. В случае универсального драйвера от HP проверка на цифровую подпись файлов в пакете проходит успешно и принтер ставится без проблем, а вот при попытке установить на клиенте принтер от Kyocera, где в качестве драйвера используется Kyocera Universal Classic Driver, который, кстати говоря на сайте числится как ‘signed’ вылезает ошибка выше.

print-server-sha-digital-signature-driver-printer

2. Драйвер принтера должен быть упакованным, спецификация (package-aware v3). При попытке установить не упакованный драйвер (non-package-aware v3) получим сообщение о недоверии к принтеру и запрос на повышении прав позволяющий установить драйвер с административной учетной записью.

print-server-trust-printer

Проверить упакован драйвер принтера или нет, можно в консоли управления принтерами (Printer Managment) в разделе Drivers, колонка Packages. Как видим, драйвер Konica Minolta  находится в состоянии false.

print-server-printer-packages

Решить проблему с установкой не доверенных драйверов принтеров на клиентских компьютерах, нам поможет включение групповой политики: Point and Print Restriction (Ограничения указания и печати), которая находится по адресу:

Computer ConfigurationPoliciesAdministrative TemplatesPrinters (Конфигурация компьютераПолитикиАдминистративные шаблоныПринтеры).

Отмечаем галочки напротив Users can only point and print to these server (Функцию указания и печати можно использовать только на этих серверах) и через точку с запятой, указываем полные доменные имена серверов печати (FQDN). В нашем примере это: prints.test.ru В поле Security Promts (Запросы безопасности), параметрам «Then installing drivers for a new connection» и «Then updating drivers for a exsiting connection» (При установке/обновлении драйверов для нового подключения) выставляем: Don’t show warning or elevation promt (Не показывать предупреждение или запрос на повышении прав).

print-server-print-and-point-restrictionsНе лишним будет так же включение политики: Package Point and Print — Approved servers (Функция указания и печати для пакетов — Разрешенные серверы) которая находится там же по адресу: Computer ConfigurationPoliciesAdministrative TemplatesPrinters. Данная политика полностью независима от Point and Print Restriction и распространяется только на пакетные драйверы, что в итоге помогло снять ошибку возникающую во время установки универсального драйвера от Kyocera.

В поле Enter fully qualified server names (Введите полные доменные имена серверов) задаем имя сервера печати. Жмем применить. На принт-сервере и на клиентских ПК запускаем принудительное обновление политик при помощи gpupdate /force. После чего установка принтеров должна происходить без вопросов.

print-server-print-and-point-approved-servers

3) Консоль управления Print Managment. Добавление принтеров в пул (Print Pooling);

Print Pooling — это технология позволяющая объединять несколько принтеров в один логический, что может оказаться полезным в организациях с большим объемом печати и большим количеством печатающих устройств. Например, в ситуации когда есть 5-ть одинаковых принтеров и не понятно, какой из них загружен печатью, а какой свободен, один логический принтер установленный в системе позволяет автоматически определять свободный принтер в пуле, что в итоге экономит время между решением отправить задание на печать и фактически самой печатью.

Для того что бы объединить несколько принтеров в пул, переходим в раздел Printers нашего принт-сервера и добавляем как обычно новый принтер в систему либо выбираем существующий. Затем переходим на вкладку Ports (порты) и добавляем новый TCP/IP-порт соответствующий IP-адресу другого принтера в будущем пуле.

print-server-add-ports

Выбираем Standart TCP/IP Port и жмем New Port… Затем прописываем IP-адрес принтера, жмем Next и Finish. Добавляем столько портов сколько нам нужно в пуле.

print-server-add-print-name-ip-address

Теперь переходим в свойства будущего логического принтера, на вкладку Ports (Порты) и отмечаем чекбокс Enable print pooling (Разрешить группировку принтеров в пул), затем дополнительно выбираем ранее созданный порт 192.168.0.210 и жмем Apply (Применить);

print-server-enable-printer-pooling

Таким образом мы добавили два физических принтера в пул, и получили на выходе один логический.

4) Консоль управления Print Managment. Установка принтеров при помощи групповой политики;

Что если в нашей организации 50-100 и более компьютеров, а пользователи, как это не редко бывает сами не хотят / не умеют или не знают какой из принтеров в каталоге им необходимо установить? В данном сценарии нам поможет инструмент установки принтера при помощи групповой политики. Например, если известно, что у определенного пользователя или группы должен быть установлен определенный принтер, то можно заранее в автоматическом режиме развернуть нужные принтеры, незаметно для пользователя и без прямого вмешательства системного администратора. Для этого необходимо авторизоваться на сервере-печати под доменной учетной записью с правами Print Operators или выше, затем перейти в консоль Print Managment, отметить нужный принтер и по правой кнопке выбрать пункт Deploy with Group Policy (Развернуть с помощью групповой политики). В качестве примера, проделаем данную операцию для принтера «Операторы». В поле GPO name выберем объект групповой политики на который будет распространяться политика автоматической установки принтера. Я выберу заранее созданный объект Operator, который в свою очередь привязан к подразделению Operators, внутри которого находятся объекты пользователей для которых и производится установка принтера.

print-server-deploy-with-group-policy1

Отмечаем галочкой на кого будет распространяться политика подключения принтера, на пользователей или компьютеры. Жмем добавить, применить, ОК.

print-server-deploy-with-group-policy2

Перезапускаем клиентский компьютер и видим что принтер «Операторы» успешно добавлен в сиcтему.

5) Перенос конфигурации с одного сервера печати на другой;

В случае, замены сервера печати или аварийной ситуации может потребоваться быстро восстановить существующую конфигурацию на другой сервер. И дабы сократить время восстановления, желательно уже иметь в запасе резервную машину с установленной службой печати и заранее экспортированным файлом резервной копии в специальном формате .printerExport. Данный файл содержит полную копию всех установленных принтеров, портов и драйверов позволяющих развернуть аналогичную конфигурацию на другом сервере. Для того что бы получить такой файл, необходимо перейти в корень локального сервера утилиты Print Managment, в нашем случае ‘prints (local)’, щелкнуться правой кнопкой и выбрать Export printers to a file… (Экспортировать принтеры в файл). Следовать указаниям мастера и получить на выходе файл резервной копии.

print-server-export-printers-to-a-file

В рамках данной статьи, текущий (исходный) сервер у нас имеет сетевое имя: prints, новый, конечный, куда переносится конфигурация: prints-new, таким образом шаги по переносу данных с одного принт-сервера на другой будут следующими:

  • На резервном (новом) сервере, поднимаем роль службы печати и документов, если она не была добавлена ранее.
  • На старом сервере отменяем публикацию в Active Directory, снятием галочки List in Directory в свойствах каждого установленного принтера либо выделяем все принтеры сразу и по правой кнопке выбираем: Remove from Directory;
  • Выводим, если это возможно старый сервер из домена, меняем сетевое имя на prints-old, перегружаемся. Если данная возможность не доступна, например в случае физического выхода из строя сервера, то удаляем компьютер/сервер на контроллере, например из оснастки «Active Directory Users and Computers» в контейнере Computers. На предложение удалить все вложенные объекты (Confirm Subtree Deletion) отвечаем утвердительно.
  • На новом сервере, куда переносим конфигурацию меняем сетевое имя на prints, добавляем в домен.
  • Восстанавливаем экспортированный ранее файл .printerExport на новом сервере. (Import printers from a file…). В процессе импорта есть возможность сразу опубликовать принтеры для общего доступа в службе каталогов (List in directory). После чего, проверяем работу принтеров на новом сервере.

6) Устранение неполадок в работе службы печати;

Что касаемо, неполадок возникающих в процессе работы службы печати и их устранении, то здесь писать особо нечего, т.к. все сводится буквально к нескольким шагам, по остановке службы печати, зачистке очередей печати в %windir%System32spoolPRINTERS и последующем старте службы, что известно практически каждому админу и не только. Для полноты обзора, и для совсем  «зеленых» товарищей приведу всем известную последовательность команд :)

Запускаем командную строку — cmd.exe;

Останавливаем службу печати:

Чистим очередь печати, удаляя *.SHD, *.SPL, *.TMP файлы внутри директории,  командой:

del /q /f %windir%System32spoolPRINTERS*.*

Запускаем службу печати:

Либо делаем профилактический рестарт службы, без зачистки очереди:

net stop spooler & net start spooler

Можно сделать батник для запуска а автоматическом режиме. Сохраняем файл например под именем spool.cmd.

setlocal
net stop spooler
del /q /f %windir%System32spoolPRINTERS*.*
net start spooler

Перезапустить службу можно и при помощи gui интерфейса, в оснастке «службы» — services.msc, а почистить папку PRINTERS в проводнике, но как по мне в консоле или батником быстрее.

printers

Чаще всего эти проблемы случаются из-за того что в сети установлены принтеры разных производителей, с разными драйверами. В результате останавливается диспетчер очереди печати на терминальных серверах Windows.Также операционки разных разрядностей, те 32bit и 64bit. Также подобное поведение в большей мере проявляется у USB принтеров, в меньшей мере у сетевых.

Рассматривать установку драйверов не будем — разберемся со службой печати. Данный мануал подойдет как для Windows 2008 и выше, так и для windows 7.

Перезапуск службы печати в Windows

Данная служба называется print spooler. Для чего может потребоваться выполнить перезапуск службы печати? Бывает так, что в какой-то момент  очередь печати принтера просто забивается, особенно если печать ведется через сервер терминалов.

Как перезапустить службы печати Windows через оснастку службы

panel

Открываем — Пуск — Панель управления

administr

Далее ищем пункт — Администрирование — Службы

sluzby

либо нажимаем win+R, открыв командную строку — пишем services.msc и жмем enter. У вас откроется оснастка Службы.

services

Находим нашу с вами службу, а именно Диспетчер печати, видим, что статус у нее сейчас Работает.

dispprint

Щелкаем правым кликом и из контекстного меню выбираем Перезапустить.

perezapusk

Служба перезапустится и ваш принтер вероятно, начнет снова печатать.

Как перезапустить службы печати Windows  через консоль.

Открываем cmd через Пуск.

И пишем в нем две команды:

net stop spooler
net start spooler

Как очистить очередь печати принтера (Windows)

Проблема: документы не удаляются из очереди, причем не помогает ни отключение принтера, ни перезагрузка компьютера.

printer

В этом случае используем жесткий метод очистки, описанный ниже.

Необходимо открыть командную строку, запущенную от имени администратора, и выполнить следующие команды:

net stop spooler
del %systemroot%system32spoolprinters*.shd
del %systemroot%system32spoolprinters*.spl
net start spooler

Для ленивых Cmd файл в архиве zipremove_printer_jobs.zip217 Байт. (Запускать от имени Администратора)

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

Причины этих проблем разделим следующим образом.

  • Неидентичные версии драйверов на клиентской машине и на терминальном сервере.
  • Нестабильность драйверов в терминальной среде.
  • Высокая нагрузка на службу «диспетчер очереди печати»
  • Отсутствие работоспособных драйверов для терминальных серверов.

Версии драйверов.

Драйверы различных версий на сервере и клиентских машинах (в общем, то это первое, что нужно проверить) должны быть идентичны в т. ч. и с точки зрения версии PCL. Если версии отличаются то, скорее всего печати нам не видать. Также можно отметить, что когда стоит выбор использовать PCL5 или PCL6, лучше устанавливать драйверы PCL5, т.к. на практике они работают стабильнее. PCL6 возможно пригодится для печати векторной графики, но в офисах, где печатаются в основном текстовые документы, он не так актуален.

Высокая нагрузка и нестабильность драйверов в терминальной среде.

Нестабильная работа драйверов и, соответственно, перегрузка ими диспетчера очереди печати (по русски – «спулера») вызывала (и будет вызывать, если не чего не делать), остановку всего процесса печати на сервере, а иногда и остановку (зависание) ОС сервера в целом.

До выхода Windows Server 2008, штатных средств по оптимизации нагрузки спулера в ОС Windows Server не было.

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

С выходом Windows Server 2008 и Windows 7 появилась возможность изоляции драйверов принтера. Данная возможность позволяет драйверу принтера подгружать задачи не в Spoolsv.exe, а специальный под-процесс PrintIsolationHost.exe.

При такой конструкции, зависание драйвера одного принтера, не вешает всю очередь печати, поскольку встает только один под-процесс PrintIsolationHost.exe, а сам процесс спулера spoolsv.exe остается работоспособным.

Теперь пару слов о настройке. Диспетчер печати по умолчанию выполняет драйверы печати в изолированном процессе. Изменить можно при помощи групповой политики, параметр «Выполнять драйверы принтеров в изолированных процессах» .

Также важен еще один параметр групповой политики это – «Переопределить параметр совместимости выполнения драйвера печати«

Для того чтобы включить изоляцию драйверов принтеров, нужно использовать редактор локальной групповой политики (gpedit.msc):

gpedit

Откройте gpedit.msc и последовательно перейдите:

Параметры компьютера (Computer Configuration) -> Административные шаблоны (Administrative Templates)-> Принтеры (Printers).

Среди перечня политик нужно включить следующие:

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

Переопределить параметр совместимости выполнения драйвера печати, назначенный драйвером печати (Override print driver execution compatibility setting reported by print driver)

К сожалению, данная функция никак не решит проблему отсутствия работоспособных драйверов для терминальных сред или слишком высокой нагрузки на спулер (например, когда на сервере установлены 10-ки разных драйверов разных устройств).

Отсутствие работоспособных драйверов для терминальных сред и сверхнагрузка на спулер.

В ситуации, когда с терминального сервера необходимо печатать на 10-ках различных печатающих устройствах (в зоопарке из принтеров, если быть точнее), многие из которых не имеют рабочих драйверов для терминалов, следует применять функцию TS Easy Print.

TS Easy Print и сторонние решения вроде коммерческого продукта ScrewDrivers — в данном материале не рассматриваются.

Понравилась статья? Поделить с друзьями:
  • Изоляция графов аудиоустройств windows что это как удалить
  • Изоляция графов аудиоустройств windows грузит диск
  • Изоляция графов аудиоустройств windows 10 грузит процессор что это
  • Изоляция графов аудиоустройств windows 10 грузит процессор на ноутбуке
  • Изоляция графов аудиоустройств windows 10 грузит процессор как отключить