Windows 2008 server не печатают принтеры

При работе через RDP, на Windows Server 2008 и выше, у многих пользователей часть принтеров печатает нормально, а некоторые не печатают. Чаще всего, такая ситуация, возникает из-за несовместимости некоторых принтеров со встроенным, в Windows Server, драйвером Easy Print.

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

1) Запускаем «Редактор групповой политики»
«Пуск» → «Выполнить» → «gpedit.msc»

2) Переходим в следующий раздел:
В Windows Server 2008 R2
«Конфигурация компьютера» → «Административные шаблоны» → «Компоненты Windows» → «Службы удаленных рабочих столов» → «Узел сеансов удаленных рабочих столов» → «Перенаправление принтеров»
или (в разных версиях по разному)
«Конфигурация компьютера» → «Административные шаблоны» → «Компоненты Windows» → «Службы терминалов» → «Сервер терминалов» → «Перенаправление принтеров»

3) Меняем значение параметра «Использовать в первую очередь драйвер принтера Easy Print служб терминалов» на «Отключена»

4) Осталось вручную установить на сервер драйверы от принтеров, которые не работают у пользователей.

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

Время на прочтение
3 мин

Количество просмотров 285K

Приветствую, %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, но не бесплатно (впрочем, есть лекарства ;).

Заключение

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

  • Remove From My Forums
  • Вопрос

  • Доброго времени суток.
    Установил Windows 2008 Standard, установил роль сервера термналов, RemoteApp, лицензии, в общем, все , как положено.
    Возникли следующие проблемы: Не печатает на установленный локально (непосредственно подключенный к серверу по USB) принтер HP Laserjet P1006. Причем выглядит это так — задание печати ставится в очередь и потом оттуда исчезает, как будто ушло на принтер. Драйверы от Vista.
    Ставил всяко- разно. UAC и отключал, и не отключал…Драйверов специально под Windows 2008 Server не нашел. Думаю, проблема совсем не в них. На такой же принтер, но по сети , я могу печатать, но есть задержка между отправкой на печать и выходом страницы.
    Из RemoteApp (1C Предприятие 7.7) печатает тоже с задержкой.
    Может кто-то сталкивался. Был бы признателен за совет или направление поиска решения.
    Видимо, только у меня такая проблема…

    • Перемещено

      23 апреля 2012 г. 5:56
      merge forums (От:Windows Server 2008)

Ответы

  • Проблема именно в драйвере от HP. У нас были 2 принтера Р1005 и Р1006 — в сети отказывались работать,

    только локально, звонил в HP — ответ был такой, что драйвера этих принтеров не поддерживают работу в сети.

    • Помечено в качестве ответа
      Nikita Panov
      21 июня 2009 г. 8:28


База знаний —


Терминальный сервер

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

Принтер не пробрасывается в терминал:

  1. Убедитесь что в настройках клиента при подключении стоит галочка Подключать принтеры
  2. Убедитесь что на сервере терминалов в «Администрирование->Службы удаленных рабочих столо->Конфигурация узла сеансов удаленных рабочих столов» в свойствах подключения не стоит галочка запрещающая проброс принтеров
  3. Убедитесь, что на сервере стоит драйвер для принтера, который пробрасывает клиент

Принтер пробрасывается печать идет, но в очередь печати на клиентском компьютере ничего не приходит

  1. Убедитесь, что на сервере стоит драйвер той-же версии, что и на клиенте
  2. Убедитесь, что на сервере стоит драйвер для той-же разрядности Windows, что и на клиентском компьютере (x86 или x64). На 64 разрядный сервер можно поставить 32 разрядные драйвера в управлении сервером печати -> драйвера -> добавить
  3. Начиная с Windows Server 2008 появилась технология EasyPrint, которая должна обеспечить печать не зависимо от наличия драйвера конкретного принтера на сервере. По умолчанию для всех проброшенных принтеров подключается драйвер EasyPrint. К сожалению не всегда это работает. Стоит попробовать отключить эту возможность. Для этого:
    • В случае домена правим политику для нашего сервера терминалов, а если домена нет, то локальную политику на сервере терминалов
    • В политике «Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров -> использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола» Отключить
    • В командной строке на сервере терминалов выполнить «gpupdate /force»
    • Завершить терминальный сеанс пользователя и войти заново, чтобы заново прокинулись принтеры

При выключении EasyPrint это может отразиться на работе других принтеров!

  • Windows 2008 server настройка файлового сервера
  • Windows 2008 server настройка прав пользователей
  • Windows 2008 server как создать точку восстановления в windows
  • Windows 2008 server windows activator
  • Windows 2008 server в домене windows 2003