Содержание
- Почему не печатают принтеры по rdp?
- Подключение принтера через RDP: инструкция и неисправности
- Что такое RDP
- Как выполнить подключение принтера через RDP
- Что делать, если через RDP принтер не печатает
- Инструкция по настройке проброса принтера через RDP
- Этап 1
- Этап 2
- Как решить проблемы подсистемы печати в терминальном сервере
- Вместо Intro
- Причины и решения
- Идентичные драйвера
- Изоляция драйверов
- TS Easy Print
- Решения сторонних компаний
Почему не печатают принтеры по rdp?
Добрый вечер.
Помогите!
Не печатают принтеры из rdp сессии, годами все работало, но сегодня случился сбой!
Принтеры есть как проброшены (перенаправленние), так и добавлены по ip/имени.
Принтеры не сетевые, подключены к клиентским ПК по USB!
В логах:
1) Служба Диспетчер печати была неожиданно завершена. Это произошло 239 раз(а). Следующее корректирующее действие будет предпринято через 5000 мсек: Перезапуск службы.
2) Имя сбойного приложения: spoolsv.exe, версия: 6.2.9200.22376, метка времени: 0x5a90b3eb
Имя сбойного модуля: ntdll.dll, версия: 6.2.9200.22376, метка времени: 0x5a90c271
3) При инициализации \userCanon LBP2900 произошла ошибка в \userprint$COLORCNZ007.ICC. Ошибка: 5. Отказано в доступе.
. Это может быть следствием нестабильной работы системы или нехватки системных ресурсов.
4) Entry Function: DrvPrinterEvent, Base Address: 0000000068E60000, Exception Address: 000007FD13E966F8, Exception Code: ACCESS_VIOLATION
5) Имя сбойного приложения: spoolsv.exe, версия: 6.2.9200.22376, метка времени: 0x5a90b3eb
Имя сбойного модуля: ntdll.dll, версия: 6.2.9200.22376, метка времени: 0x5a90c271
Код исключения: 0xc0000374
Смещение ошибки: 0x00000000000da535
Идентификатор сбойного процесса: 0x4474
Время запуска сбойного приложения: 0x01d58d9a902db136
Путь сбойного приложения: C:WindowsSystem32spoolsv.exe
Путь сбойного модуля: C:WindowsSYSTEM32ntdll.dll
Идентификатор отчета: e31172f2-f98d-11e9-9450-0cc47acd844c
6) Redirection of additional supported devices is disabled by policy.
Что происходит? Как лечить?
- Вопрос задан более года назад
- 1633 просмотра
1) Перезапуск службы печати.
2) Очистка папки C:WindowsSystem32Spool
3) Перзагрузка компьютера.
Если проблема с принтерами определённого производителя, то вычистить от них систему, переустановить драйвера и перезагрузить.
Подключение принтера через RDP: инструкция и неисправности
Подключить печатное устройство можно не только через USB-кабель, но и через протокол удаленного рабочего стола. Стандартный функционал предусматривает наличие такой возможности. Особых затруднений процедура не вызывает, а если подсоединить принтер через RDP, ошибок и сбоев при работе наблюдается значительно меньше.
Что такое RDP
Протокол удаленного рабочего стола – протокол прикладного уровня, позволяющий подключаться к удаленному компьютеру вне зависимости от варианта системы – Windows 7, Windows 10.
Преимущества у такого решения очевидные:
- этот инструмент позволяет работать как любому пользователю с удаленного компьютера, так и тому, кто открывает удаленный доступ;
- протокол разрешает не только видеть рабочий стол, но и подключать через RDP локальный принтер, диск, смарт-карты и прочее. В определенных случаях можно даже слушать музыку, хотя передача будет прерываться;
- подсоединение и работа с протоколом не требует никаких дополнительных специальных программ или утилит и доступна любому клиенту;
- функция относится к стандартным, за ее установку и пользование нет нужды платить.
Недостатки следующие:
- для работы с RDP необходим внешний «белый» IP-адрес, иначе компьютер не перенаправляет устройство. Другой вариант – возможность проброса с порта с маршрутизатора такого же внешнего адреса;
- новые версии программы больше не поддерживают 16-цветовую схему. При малой скорости интернета это существенно замедляет работу.
Как выполнить подключение принтера через RDP
Сделать это достаточно просто. Однако следует очень тщательно контролировать выполнение всех манипуляций с тем, чтобы позднее не столкнуться с ситуацией, когда не пробрасывается принтер по RDP.
Подключение через RDP
- Если машина подключена к кабелю не непосредственно через роутер, необходимо выполнить нескорые действия – пробросить порт сервиса 3389. Если этого не сделать, роутер не перенаправляет внутрь сети.
- Затем следует скачать драйвер для печатного устройства и загрузить его на компьютер, к которому в дальнейшем будут удаленно подключаться. ОС машины – Windows 7, Windows 10, значения не имеет.
- На главном компьютере, откуда будут работать с удаленным рабочим столом. Нужно в «Свойствах системы» разрешить такое подсоединение.
- Затем требуется сформировать пароль для тех пользователей, которые будут работать с печатным устройством, либо же создать нового пользователя с доступом.
- В меню «Пуск» выбирают «Компьютер» и, кликнув правой кнопкой мыши, находят «Свойства».
- В окне «Система» находят пункт «Дополнительные параметры системы».
- В появившемся окне открывают вкладку «Удаленный доступ» и кликают по «Дополнительно».
- Здесь отмечают галкой пункт «Разрешить удаленное управление» и нажимают «ОК».
Сценарий описан для Windows 7. В Windows 10 или Pro действий может быть больше, как и отмеченных пунктов.
- Теперь нужно зайти через Пуск/Все Программы/ Стандартные в «Подключение к удаленному столу» и указать IP-адрес аппарата.
- На странице выбирают локальное или сетевое устройство с параметрами, которые задаются вручную.
- Теперь нужно указать порт. Выбирают порт, который видит печатное устройство.
- Затем вписывают модель аппарата – вручную, если в списке его нет. Также нужно выбрать драйвер, который предварительно скачали и установили на удаленный компьютер.
После установки и настройки ПО нужно распечатать тестовую страницу. Если подключение проведено успешно, то аппарат заработает и выдаст распечатанную страницу. Если же выходит пустая страница, то следует указать в «Свойствах» другой порт и попробовать еще раз. На фото – печать тестовой страницы.
Если печатное устройство не пробрасывается, следует перепроверить настройки.
Что делать, если через RDP принтер не печатает
Если печатное устройство не пробрасывается и выдает пустую страницу, нужно уточнить настройки.
- В первую очередь уточняют состояние RDP-файла, обеспечивающего проброс до сервера. Для этого кликают по ярлыку правой кнопкой и в появившемся меню выбирают «Изменить».
- Затем в появившемся окне с параметрами, нужно выйти на «Локальные ресурсы» и отметить галочкой пункт «Принтеры».
Если печатное устройство поддерживает Easy Print, то на этом настройка проброса заканчивается. Если нет, следует выполнить еще ряд действий, иначе проброс принтеров через RDP не будет выполняться и аппарат будет по-прежнему не печатать.
- На сервере в меню копки «Пуск» выбирают «Диспетчер сервера».
- В списке слева находят «Роли» и выбирают «Добавить роли».
- Затем на странице «Роли» галочкой отмечают «Службы печати» и нажимают «Далее».
- По умолчанию здесь заявлен «Сервер печати». Щелкают по «Установить» и «Перезагрузить сервер».
- Затем нужно найти в основном меню «Диспетчер сервера» и кликнуть по «Конфигурации» – «Локальные пользователи» – «Группы». В правой части в «Операторы печати» добавляют свою учетную запись.
- Выполняют log off-log on.
- Чтобы исключить ситуацию, когда устройство не пробрасывается, загружают драйвер и распаковывают.
- Снова в «Диспетчере сервера» в разделе «Сервер печати» вписывают имя компьютера, с которого выполняют удаленное подключение.
- Находят «Принтеры». Если все сделано правильно, то напротив нужной модели должно стоять remote desktop easy print.
- Затем щелкают по названию своего компьютера, выбирают «Драйверы» и «Добавить драйвер».
- В появившемся окне «Мастера установки» отмечают процессор 64.
- На странице «Установка с диска», отмечают файл*.inf и дальше выполняют требования «Мастера установки».
- Заканчивают операцию входом/выходом на терминальном сервере.
Инструкция по настройке проброса принтера через RDP
Приводим подробную инструкцию, как настроить печать принтера, подключенного через удаленный рабочий стол.
При возникновении такой проблемы, когда принтер не печатает, необходимо произвести следующие манипуляции:
Этап 1
Необходимо убедиться, что в настройках файла удаленного рабочего стола настроено открытие локальных ресурсов по отношению к серверу. Для этого откройте ярлык рабочего стола, щелкнув правой кнопкой мыши. В открывшемся меню выберите параметр «Изменить».
В окне настроек откройте вкладку с локальными ресурсами и установите галочку напротив строки «Принтеры», как это показано на картинке.
В том случае, если устройство поддерживает функцию «Easy Print» — поздравляем, настройка завершены. Можете пользоваться принтером и печатать необходимые документы.
Если устройство не поддерживает данную функцию, тогда необходимо выполнить еще несколько шагов для успешного решения проблемы. Как это делается, читайте ниже.
Этап 2
Если функция легкой печати не работает, сначала нужно войти на сервер и добавить роль службы печати и документов.
- Нажмите на кнопку «Пуск» и откройте диспетчер сервера, как показано на изображении;
Выберите вкладку «Роли» и нажмите «Добавить»;
Перейдите во вкладку «Драйверы ПКМ» и нажмите на кнопку добавления нового;
Как показано ниже, в открывшемся окне выберите процессор x64;
Выберите установку с диска, указав скачанный файл с расширением *.inf;
Как решить проблемы подсистемы печати в терминальном сервере
Сегодня я бы хотел поделиться своим опытом устранения проблем печати на терминальном сервере Microsoft.
Подробности под катом.
Вместо Intro
Наверняка, почти каждый системный администратор, работающий с Windows и, в частности, с терминальным сервером, сталкивался с проблемами печати.
Разрывается телефон, у всех одна и та же проблема: «Нажимаю на печать — ничего не происходит!». Идем смотреть логи и видим следующую картину:
Знакомо? Никаких подробностей, ничего — гадайте, господа администраторы! На форумах в интернете полно вопросов по этой теме и очень мало полных, структурированных ответов. Что ж, попробуем собрать в кучу все варианты решений.
Причины и решения
Итак, из-за чего может происходить подобная ситуация? Большую часть подобных ситуаций вызывают установленные на сервере драйверы.
- Необходимо помнить, что драйверы у клиентов и на сервере должны быть идентичны
- Убедитесь, что включена изоляция драйверов
- Удалите все драйвера на сервере и попробуйте использовать TS Easy Print
- Попробуйте решения сторонних компаний
А теперь пройдемся подробнее по всем пунктам. Для начала установим на наш терминальный сервер роль «Службы печати и документов».
Это позволит нам удобно управлять драйверами и принтерами, установленными в системе.
Идентичные драйвера
Думаю, тут особо не о чем рассказывать. Стоит помнить, что драйвера необходимо брать с официальных страниц изготовителя принтера. Так же еще один момент — стабильнее всего ведут себя PCL5. Если есть возможность выбора между PCL5 и PCL6 — стоит установить PCL5 (соответственно, серверу и клиенту).
Изоляция драйверов
В Windows 2008 появилась замечательная возможность изоляции драйверов принтера. Теперь драйвер принтера подгружается не Spoolsv.exe а специальным процессом PrintIsolationHost.exe. При «вылетании» драйвера принтера «слетает» только один экземпляр PrintIsolationHost.exe, а сама служба «Диспетчера печати» остается работоспособной, что, как понимаете, весьма влияет на настроение пользователей 😉
Чтобы включить данную возможность, нам необходимо открыть редактор локальной групповой политики (gpedit.msc) и пройти следующим путем: «Параметры компьютера -> Административные шаблоны -> Принтеры». Находим и включаем следующие пункты:
- Выполнить драйверы принтеров в изолированных процессах
- Переопределить параметр совместимости выполнения драйвера печати, назначенный драйвером печати
Будет выглядеть следующим образом:
TS Easy Print
Видимо, вняв наконец стенаниям системных администраторов, компания Microsoft решила что-то сделать с необходимостью ставить зоопарк драйверов на терминальный сервер и падающим из-за этого spoolsv.exe. В итоге, на свет родилась технология TS Easy Print. Ключевой особенностью является, то, что больше нам не нужно устанавливать на сервер драйвера для каждого принтера — вместо этого используется унифицированный драйвер Remote Desktop Easy Print, соответственно, мы уходим от проблемы падающего спулера — ведь все операции с печатью выполняются на компьютере клиента.
Для того, чтобы явно определить, что мы хотим использовать на терминальном сервере TS Easy Print, необходимо пройти опять же в редактор локальной групповой политики (gpedit.msc) по следующему пути: «Параметры компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров». Нас интересуют следующие пункты, которые надо включить:
- Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола
- Перенаправлять только используемый по умолчанию принтер клиента
Второй пункт необходим, если мы хотим, чтобы в терминале у клиента был только его принтер по умолчанию.
Далее, необходимо очистить наш сервер от лишних драйверов принтеров. Это можно сделать в менеджере роли «Службы печати и документов».
Внимательно удаляйте драйвера! Необходимо оставить в живых такие вещи, как «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
Ошибка при печати с удаленного рабочего стола
-
Вопрос
-
Здравствуйте!
Возникла проблема с печатью на принтер. Есть сервер 2012 х64 и несколько клиентских win7 x86, при подключении по RDP подтягивается принтер установленный на клиентской машине, пускает документ в очередь печати с ошибкой и соответственно
не печатает. Принтер рабочий, по локалке печатает. На сервере и на клиентской машине стоят одинаковые драйверы(доп. драйверы x64 и x86 и там и там стоят). Есть точно такой же принтер, но в другом месте, подключен таким же
образом, все работает. В чем может быть загвоздка?Заранее спасибо!
Ответы
-
-
Помечено в качестве ответа
2 июня 2014 г. 6:22
-
Помечено в качестве ответа
Настольные принтеры чрезвычайно полезны, если вы занимаетесь бумажной работой или работаете в фирме, которая требует от вас частой печати. Но знаете ли вы, что удобнее? Это печать с удаленного рабочего стола, которая позволяет программному обеспечению печатать на локальном принтере с сервера терминалов без какого-либо физического взаимодействия с принтером. Если вы уже являетесь пользователем RDP, вы должны знать о проблемах перенаправления принтеров удаленного рабочего стола. Если это так, то вы попали на нужную страницу, поскольку наша сегодняшняя тема сосредоточена на локальном принтере, который не отображается на удаленном рабочем столе. Мы подробно обсудим перенаправление RDP, а также раскроем причины, по которым перенаправление принтера удаленного рабочего стола не работает в Windows 10. Итак, давайте сразу начнем с нашего руководства и поможем вам исправить перенаправленный принтер удаленного рабочего стола, который не печатает, чтобы сделать процесс удаленная печать проще и приятнее для вас.
Ниже приведены несколько исправлений, которые помогут вам решить проблему с принтером, который не отображается на удаленном рабочем столе. Эти решения протестированы и опробованы и могут помочь вам, если вы столкнулись с этой проблемой на рабочем столе:
Способ 1: включить подключение принтера
Первый метод, который мы собираемся обсудить сегодня, включает в себя включение подключения принтера. Прежде чем приступать к другим исправлениям, необходимо убедиться, что в настройках подключения к удаленному рабочему столу выбран параметр «Принтеры». Вы можете проверить это, запустив окно подключения к удаленному рабочему столу и выполнив следующие действия:
1. Чтобы запустить RDC, нажмите клавиши Windows + R, чтобы открыть окно командной строки «Выполнить».
2. Теперь введите mstsc в поле и нажмите клавишу Enter.
3. Затем нажмите «Показать параметры» в диалоговом окне RDC.
4. Теперь на вкладке «Локальные ресурсы» убедитесь, что выбран параметр «Принтеры».
Способ 2: убедитесь, что драйвер установлен на сервере
В этом методе вы должны убедиться, что на сервере установлены драйверы для запуска принтера, который, по-видимому, вызывает перенаправление принтера на удаленный рабочий стол, не работающее в Windows 10. Если драйверы не установлены на компьютере, к которому вы подключены, вы не сможете получить доступ к принтеру. Таким образом, вы должны обеспечить установку диска, используя шаги, указанные ниже:
1. Снова запустите окно «Выполнить», на этот раз щелкните правой кнопкой мыши значок Windows, чтобы выбрать «Выполнить».
2. Теперь введите панель управления в поле, чтобы открыть следующее окно.
3. Теперь откройте утилиту «Оборудование и звук».
4. В следующем окне нажмите «Устройства и принтеры».
5. Затем выберите нужный принтер и щелкните Свойства сервера печати.
6. Теперь на вкладке Драйверы проверьте установленные драйвера принтера.
Способ 3: разрешить перенаправление клиентских принтеров на сервер
Как вы знаете, если в вашей системе возникает проблема с перенаправлением принтера на удаленный рабочий стол, это, скорее всего, связано с настройками сервера. Эта настройка сервера может помешать принтерам печатать, если в системе работает сервер Windows. Итак, вы должны войти на сервер и выполнить следующие шаги, чтобы разрешить перенаправление клиентских принтеров на сервер:
Примечание 1. Следующие шаги можно выполнить для Windows 10/11.
1. Нажмите одновременно клавиши Windows + R и введите gpedit.msc в поле «Выполнить».
2. Теперь перейдите в раздел «Конфигурация компьютера» и выберите «Административные шаблоны».
3. Затем выберите «Компоненты Windows» и выберите «Службы удаленных рабочих столов» в окне «Редактор локальной групповой политики».
4. Затем щелкните Узел сеансов удаленного рабочего стола и откройте Перенаправление принтеров.
5. Нажмите «Не разрешать перенаправление клиентских принтеров» и выберите «Не настроено» или «Отключено».
Примечание 2. Следующие шаги можно выполнить для Windows 2012.
1. Запустите приложение Server Manager в вашей системе.
2. Теперь нажмите Службы удаленных рабочих столов.
3. Затем нажмите «Коллекции» в раскрывающемся меню.
4. Теперь выберите «Задачи» и нажмите «Изменить свойства».
5. Наконец, на вкладке «Параметры клиента» убедитесь, что принтер Windows включен.
Примечание 3. Следующие шаги можно выполнить в Windows 2008.
1. Щелкните значок «Пуск» и запустите «Инструменты администрирования».
2. Затем щелкните Службы удаленных рабочих столов и, наконец, выберите Конфигурация узла сеансов удаленных рабочих столов.
3. Теперь выберите «Подключения» и щелкните правой кнопкой мыши имя подключения.
4. Теперь нажмите «Свойства» и выберите «Настройки клиента».
5. Наконец, убедитесь, что флажок Принтер Windows не установлен.
Способ 4: проверьте брандмауэр Windows
Следующий метод заключается в проверке Брандмауэр Windows вашей системы, чтобы решить проблему, когда локальный принтер не отображается на удаленном рабочем столе. Иногда брандмауэр Windows может ограничивать работу определенных программ или приложений. В этом случае входящий протокол ICMP, который используется для установления ping-соединений, может быть запрещен по умолчанию брандмауэром, что может быть причиной того, что вы не видите, как ваш принтер работает на удаленном рабочем столе. Следовательно, вы должны либо разблокировать программу через брандмауэр вашей системы, либо просто отключить ее, чтобы обеспечить бесперебойную печать. Вы можете многое узнать о том, как блокировать или разблокировать программы в брандмауэре Защитника Windows, с помощью нашего руководства здесь.
Способ 5: настройка параметров удаленного рабочего стола Windows
Также могут быть проблемы с удаленным рабочим столом, которые могут мешать отображению принтера в вашей системе. Эта проблема также была распространенной причиной перенаправления принтеров удаленного рабочего стола. Если это так, вы должны проверить, разрешено ли удаленное подключение на машине. Если у вас возникли проблемы с подключением к удаленному рабочему столу, вы можете решить их с помощью нашего руководства по устранению неполадок с удаленным рабочим столом в Windows 10.
Способ 6: переименовать клиентский компьютер
Некоторым пользователям переименование клиентского компьютера помогло решить проблему с локальным принтером, не отображаемым на удаленном рабочем столе. Вы можете переименовать клиентскую рабочую станцию (с которой был установлен сеанс RDS) до 14 символов или менее.
Что такое перенаправление принтеров удаленного рабочего стола?
- Перенаправление принтеров удаленного рабочего стола помогает пользователям управлять своим локальным принтером в удаленной среде.
- Это позволяет вам использовать локальный принтер в удаленном сеансе.
- RDP помогает компаниям предоставлять своим сотрудникам единообразную вычислительную среду.
- Он включает в себя получение сервером списка принтеров на локальном клиенте в начале сеанса RDP.
- Затем локальный клиент выполняет перекрестную проверку совместимых драйверов печати, доступных на сервере, как только задание на печать поступает в очередь.
Что приводит к тому, что принтер с перенаправлением удаленного рабочего стола не печатает?
RDP не является исключением из ошибок, с которыми сталкиваются другие принтеры. Одной из основных проблем, с которой сталкиваются пользователи при использовании RDP, является перенаправление принтеров. Существует ряд проблем, возникающих при использовании удаленного рабочего стола, который, как утверждается, вызывает проблему перенаправления:
-
Большое количество принтеров может быть проблемой, поскольку перенаправление RDP работает только в том случае, если вы установили несколько драйверов для инициации соединения.
-
Еще одна причина проблемы — отключенное подключение к принтеру.
- Настройка вашего сервера также может ограничить отображение принтеров на удаленных рабочих столах.
-
Неправильные конфигурации системы также могут привести к указанной проблеме.
- Если на машине не разрешено удаленное подключение, это может привести к тому, что принтер не будет печатать.
- Другой возможной причиной этой проблемы может быть брандмауэр Windows, который иногда действует ограничивающе.
Часто задаваемые вопросы (FAQ)
Q1. Как добавить невидимый принтер?
Ответ Вы можете добавить невидимый принтер, выбрав параметр «Просмотр устройств и принтеров» на панели управления. Там вы можете добавить принтер, включая локальный принтер или принтер с ручными настройками.
Q2. Почему я не вижу принтер?
Ответ Если вы отключили функции «Выяснить, что файл», «Общий доступ к принтеру» и «Сетевое обнаружение» на сервере печати или компьютере, к которому принтер физически подключен, вы не сможете получить доступ к принтерам сервера или подключиться к ним.
Q3. Почему мой принтер не отображается?
Ответ Если ваш принтер не отображается, вы можете попробовать перезапустить принтер. Вы также можете попробовать отключить принтер, чтобы проверить, работает ли он.
Q4. Как я могу использовать свой локальный принтер при подключении к VPN?
Ответ Если вы хотите использовать локальный принтер при подключении к VPN, вы должны сделать свое устройство видимым для локальной сети.
Q5. Как я могу вручную найти свой принтер?
Ответ Вы можете вручную найти свой принтер, перейдя к панели управления и открыв в ней раздел «Устройства и принтеры», где вы сможете найти доступные принтеры.
***
Мы надеемся, что наше руководство о том, как локальный принтер не отображается на удаленном рабочем столе, было достаточно полезным для вас, и вы смогли найти причины проблемы, а также различные способы ее устранения. Дайте нам знать о ваших вопросах или предложениях, оставив их в разделе комментариев ниже.
Как решить проблемы подсистемы печати в терминальном сервере
Время на прочтение
3 мин
Количество просмотров 283K
Приветствую, %habrausername%!
Сегодня я бы хотел поделиться своим опытом устранения проблем печати на терминальном сервере Microsoft.
Подробности под катом.
Вместо Intro
Наверняка, почти каждый системный администратор, работающий с Windows и, в частности, с терминальным сервером, сталкивался с проблемами печати.
Разрывается телефон, у всех одна и та же проблема: «Нажимаю на печать — ничего не происходит!». Идем смотреть логи и видим следующую картину:
Знакомо? Никаких подробностей, ничего — гадайте, господа администраторы! На форумах в интернете полно вопросов по этой теме и очень мало полных, структурированных ответов. Что ж, попробуем собрать в кучу все варианты решений.
Причины и решения
Итак, из-за чего может происходить подобная ситуация? Большую часть подобных ситуаций вызывают установленные на сервере драйверы.
- Необходимо помнить, что драйверы у клиентов и на сервере должны быть идентичны
- Убедитесь, что включена изоляция драйверов
- Удалите все драйвера на сервере и попробуйте использовать TS Easy Print
- Попробуйте решения сторонних компаний
А теперь пройдемся подробнее по всем пунктам. Для начала установим на наш терминальный сервер роль «Службы печати и документов».
Это позволит нам удобно управлять драйверами и принтерами, установленными в системе.
Идентичные драйвера
Думаю, тут особо не о чем рассказывать. Стоит помнить, что драйвера необходимо брать с официальных страниц изготовителя принтера. Так же еще один момент — стабильнее всего ведут себя PCL5. Если есть возможность выбора между PCL5 и PCL6 — стоит установить PCL5 (соответственно, серверу и клиенту).
Изоляция драйверов
В Windows 2008 появилась замечательная возможность изоляции драйверов принтера. Теперь драйвер принтера подгружается не Spoolsv.exe а специальным процессом PrintIsolationHost.exe. При «вылетании» драйвера принтера «слетает» только один экземпляр PrintIsolationHost.exe, а сама служба «Диспетчера печати» остается работоспособной, что, как понимаете, весьма влияет на настроение пользователей
Чтобы включить данную возможность, нам необходимо открыть редактор локальной групповой политики (gpedit.msc) и пройти следующим путем: «Параметры компьютера -> Административные шаблоны -> Принтеры». Находим и включаем следующие пункты:
- Выполнить драйверы принтеров в изолированных процессах
- Переопределить параметр совместимости выполнения драйвера печати, назначенный драйвером печати
Будет выглядеть следующим образом:
TS Easy Print
Видимо, вняв наконец стенаниям системных администраторов, компания Microsoft решила что-то сделать с необходимостью ставить зоопарк драйверов на терминальный сервер и падающим из-за этого spoolsv.exe. В итоге, на свет родилась технология TS Easy Print. Ключевой особенностью является, то, что больше нам не нужно устанавливать на сервер драйвера для каждого принтера — вместо этого используется унифицированный драйвер Remote Desktop Easy Print, соответственно, мы уходим от проблемы падающего спулера — ведь все операции с печатью выполняются на компьютере клиента.
Для того, чтобы явно определить, что мы хотим использовать на терминальном сервере TS Easy Print, необходимо пройти опять же в редактор локальной групповой политики (gpedit.msc) по следующему пути: «Параметры компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров». Нас интересуют следующие пункты, которые надо включить:
- Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола
- Перенаправлять только используемый по умолчанию принтер клиента
Второй пункт необходим, если мы хотим, чтобы в терминале у клиента был только его принтер по умолчанию.
Далее, необходимо очистить наш сервер от лишних драйверов принтеров. Это можно сделать в менеджере роли «Службы печати и документов».
Внимательно удаляйте драйвера! Необходимо оставить в живых такие вещи, как «Remote Desktop Easy Print» и «Microsoft XPS Document Writer». Именно они и отвечают за передачу печати на клиента.
Теперь перейдем к требованием на клиенте. Их всего два — использование протокола RDP версии не ниже 6.1 и .NET Framework 3.0 с пакетом обновления 1 (SP1). Больше от них ничего не требуется.
Решения сторонних компаний
Избавиться от проблемы падающего спулера призваны такое ПО как, например, ScrewDrivers (сайт). Оно предоставляет клиент-серверную архитектуру.
Сервер ScrewDrivers — это компонент, который необходимо установить на серверы, на которых планируется использовать печать в терминальном сеансе. Клиент ScrewDrivers должен быть установлен на рабочих станциях. Именно этот компонент позволяет создать на терминальном сервере виртуальные принтеры, которые соответствуют локальным принтерам пользователя.
В целом, напоминает Easy Print, но не бесплатно (впрочем, есть лекарства ;).
Заключение
На этом хочу откланяться. Возможно информация не полная — буду рад услышать дополнения. Надеюсь, это поможет кому-то избежать часов нервотрепки
Удачи!
Проблемы с печатью из RDP или Терминальный сервер Windows VS Принтеры
Распечатать статью
То, что RDP и принтеры понятия хоть и совместимые, но плохо, известно давно. Но функционал этот всегда был востребован и будет востребован в будущем. Проблемы печати с терминальных серверов Windows уже много лет являются головной болью для большинства системных администраторов и ИТ-менеджеров. В рамках данной статьи мы рассмотрим основные методы «борьбы с глюками» печати из сессий удаленных рабочих столов.
Сразу оговорюсь, что в рамках этой статьи печать из терминальных ферм на Citrx’е не рассматривается.
Большинство проблем с печатью на терминальных серверах вызваны установленными на них драйверами принтеров.
- Из практики, больше всего проблем с драйверами от принтеров фирмы Cannon. Не воспринимайте как анти-рекламу, просто опыт.
На верхнем уровне причины этих проблем можно разделать следующим образом.
- Неидентичные версии драйверов на клиентской машине и на терминальном сервере.
- Нестабильность драйверов в терминальной среде.
- Высокая нагрузка на службу «диспетчер очереди печати»
- Отсутствие работоспособных драйверов для терминальных серверов.
Итак, перейдем теперь к решениям.
Версии драйверов.
Драйверы различных версий на сервере и клиентских машинах (в общем, то это первое, что нужно проверить) должны быть идентичны в т. ч. и с точки зрения версии 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)
Выполнив данные незатейливые действия, мы сильно разгрузим спулер, резко снизив частоту его падений, уберём «деревянный костыль» в виде 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)
После того, как политика активирована, можно удалить лишние драйверы принтеров с сервера.
- Будьте внимательны!!! Нельзя удалять 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 платное :-).
Из вышеописанного можно сделать вывод, что вечные проблемы с печатью на терминальных серверах решаемы, а решения этих проблем стабильны и проверены.
- Пробуйте, тестируйте, экспериментируйте и все у вас будет работать долго и счастливо!