Предисловие
Не так давно при расширении нашего заказчика возникла потребность временно предоставить доступ множества новых пользователей не из корпоративной сети к терминальному серверу заказчика на Windows Server 2008R2 с 1С. Естественно, одной из задач было обеспечить возможность печати на локальные печатающие устройства пользователей(добавление принтеров на терминальный сервер технически было нереализуемо по причине расположения печатающих устройств в другом городе/сети/IT-нфраструктуре).
Предварительно выполнив настройку систем и предоставив пользователям ярлыки rdp подключений в день «Д» мы махнули рукой дав старт работы с системой. Счастье от проделаной работы было недолгим. Большое количество пользователей с огромным количеством подключенных принтеров на их рабочих местах повесили сначала пользователей (они не могли определить какой принтер был их, так как появлялись по 40-100 принтеров с одинаковым названием с разницей в Redirect [0-9]), потом и систему печати 1С (при более 130 принтерах окно вывода на печать требовало около 5 минут ожидания, потом и вовсе не открывалось и приложение падало).
Включение наспех в локальных политиках терминального сервера redirect only default printer не решило проблему, и запуск работы пришлось отложить.
Что делать?
Отключить у пользователя в свойствах окружения его аккаунта Active directory множественный проброс устройств.
Свойста User аккаунта Active Directory
Environment - Client Devices - Connect client printers at logon.
В русскоязычном интерфейсе
Среда - Устройства клиента - Подключение принтеров клиента при входе![]()
Оставить checkbox
Default to main client printer
— По умолчанию выбирать основной принтер клиента
Автоматизация
При наличии более одного клиентского аккаунта путь мышкокликания в Active Directory Users and Computers является откровенным моветоном, а при более сотни клиентских аккаунтов еще и настоящим безумием с непреклонным слабоумием.
The Environment, Sessions, Remote Control, and Terminal Services Profile pages are supplied for a user object to support terminal services. The UI elements for these pages do not correspond to individual attributes. Instead, the settings are stored in private data within Active Directory Domain Services. The terminal services settings can be accessed with the IADsTsUserEx interface.
Доступ к этим свойствам лежит через IADsTSUserEx interface :
ConnectClientDrivesAtLogon |
Read/write |
A value that specifies if mapped client drives should be reconnected when a Remote Desktop Services session is started. |
ConnectClientPrintersAtLogon |
Read/write |
A value that specifies whether to reconnect to mapped client printers at logon. The value is one if reconnection is enabled, and zero if reconnection is disabled. |
DefaultToMainPrinter |
Read/write |
A value that specifies whether to print automatically to the client’s default printer. The value is one if printing to the client’s default printer is enabled, and zero if it is disabled. |
Для внесения изменений мы должны выполнить следующие действия над объектами в Active Directory:
Get-ADUser -Filter * -SearchBase "OU=USERS,******,DC=COM" | Foreach { $User = [adsi]("LDAP://" + $_.distinguishedname) $User.InvokeSet("ConnectClientDrivesAtLogon",1) $User.InvokeSet("ConnectClientPrintersAtLogon",0) $User.InvokeSet("DefaultToMainPrinter",1) $User.SetInfO() }
Где,
-SearchBase "OU=USERS,******,DC=COM"
— путь к пользователям в Active Directory,
$User.InvokeSet(Parameter,Value)
— установка для объекта значения Value параметра Parameter через метод InvokeSet интерфейса IADsTSUserEx interface. Список параметров IADsTSUserEx interface описан здесь.
Значение Value
- 1 — checkbox установлен (включено),
- 0 — checkbox снят (выключено)
В общем случае так же следует не забыть внести изменения в применяемую на терминальный сервер групповую политику
Computer Configuration\Policies\Administrative Templates: Policy definitions\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Printer Redirection\Do not set default client printer to be default printer in a session
в состояние Disabled.
If you disable this policy setting, the RD Session Host server automatically maps the client default printer and sets it as the default printer upon connection.
А так же проверить разрешено ли перенаправление устройств на терминальном сервере в свойствах Client Settings подключения в Remote Desktop Session Host server (установленный checkbox — запрещено, должен быть снят). Иначе проброс принтеров в RDP не будет работать.
Если требуется внести изменения через реестр (regedit в помощь) то путь через
HKLM\Software\Policies\Microsoft\Windows NT\Terminal Services
- fDisableCpm — Выключение перенаправления принтеров
- RedirectOnlyDefaultClientPrinter — перенаправление только принтера по умолчанию
Значения параметров реестра:
- 1 — checkbox установлен (выключено),
- 0 — checkbox снят (включено)
И напоследок, помните, что на терминальном сервере должны быть установлены соотвествующие для печатающих устройств клиентов драйвера совпадающие с разрядностью операционной системы клиента.
Эпилог
Полагаю, что данная статья поможет так же решить основные типовые возможные проблемы с пробросом печатающих устройств(и не только их) в терминальную сессию RDP. Статья широко освещает данную тематику.
Applies ToWindows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Standard Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Datacenter Windows Server 2008 R2 for Itanium-Based Systems
Symptoms
Consider the following scenario:
-
You have a Terminal Services server that is running Windows Server 2008 R2 Service Pack 1 (SP1).
-
You configure the Terminal Services server to use the Terminal Services Easy Print printer driver for printer redirection.
-
A user creates a terminal server session to the Terminal Services server from a client computer.
In this scenario, printer redirection is not applied to the client computer. Therefore, the user cannot print to local resources by using a redirected Remote Desktop Protocol (RDP) printer or a redirected Terminal Services Easy Print printer.
Cause
This issue occurs because an infinite time-out value causes a deadlock in the print spooler.
Resolution
Hotfix information
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing the problem described in this article. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.
If the hotfix is available for download, there is a «Hotfix download available» section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft website:
http://support.microsoft.com/contactus/?ws=supportNote The «Hotfix download available» form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
Prerequisites
To apply this hotfix, you must be running Windows Server 2008 R2 SP1.
For more information about how to obtain a Windows Server 2008 R2 service pack, click the following article number to view the article in the Microsoft Knowledge Base:
976932 Information about Service Pack 1 for Windows 7 and for Windows Server 2008 R2
Registry information
To apply the hotfix in this package, you do not have to make any changes to the registry.
Restart requirement
You must restart the computer after you apply this hotfix.
Hotfix replacement information
This hotfix does not replace a previously released hotfix.
File information
The global version of this hotfix installs files that have the attributes that are listed in the following tables. The dates and the times for these files are listed in Coordinated Universal Time (UTC). The dates and the times for these files on your local computer are displayed in your local time together with your current daylight saving time (DST) bias. Additionally, the dates and the times may change when you perform certain operations on the files.
Windows Server 2008 R2 SP1 file information notes
Important Windows 7 hotfixes and Windows Server 2008 R2 hotfixes are included in the same packages. However, hotfixes on the Hotfix Request page are listed under both operating systems. To request the hotfix package that applies to one or both operating systems, select the hotfix that is listed under «Windows 7/Windows Server 2008 R2» on the page. Always refer to the «Applies To» section in articles to determine the actual operating system that each hotfix applies to.
-
The files that apply to a specific product, SR_Level (RTM, SPn), and service branch (LDR, GDR) can be identified by examining the file version numbers as shown in the following table.
Version
Product
SR_Level
Service branch
6.1.760 1. 21xxx
Windows Server 2008 R2
SP1
LDR
-
The MANIFEST files (.manifest) and the MUM files (.mum) that are installed for each environment are listed separately in the «Additional file information for Windows Server 2008 R2» section. MUM and MANIFEST files, and the associated security catalog (.cat) files, are extremely important to maintain the state of the updated components. The security catalog files, for which the attributes are not listed, are signed with a Microsoft digital signature.
For all supported x64-based versions of Windows Server 2008 R2 SP1
File name |
File version |
File size |
Date |
Time |
Platform |
---|---|---|---|---|---|
Tsprint-datafile.dat |
Not applicable |
389 |
05-Nov-2010 |
01:56 |
Not applicable |
Tsprint-pipelineconfig.xml |
Not applicable |
275 |
05-Nov-2010 |
01:56 |
Not applicable |
Tsprint.dll |
6.1.7601.21896 |
157,184 |
12-Jan-2012 |
06:28 |
x64 |
For all supported IA-64–based versions of Windows Server 2008 R2 SP1
File name |
File version |
File size |
Date |
Time |
Platform |
---|---|---|---|---|---|
Tsprint-datafile.dat |
Not applicable |
389 |
05-Nov-2010 |
01:54 |
Not applicable |
Tsprint-pipelineconfig.xml |
Not applicable |
275 |
05-Nov-2010 |
01:54 |
Not applicable |
Tsprint.dll |
6.1.7601.21896 |
386,048 |
12-Jan-2012 |
05:29 |
IA-64 |
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the «Applies to» section.
More Information
For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates
For more information about Terminal Services printing, visit the following Microsoft website:
General information about Terminal Services printing
Additional file information
Additional file information for Windows Server 2008 R2 SP1
Additional files for all supported x64-based versions of Windows Server 2008 R2 SP1
File name |
Amd64_tsprint.inf_31bf3856ad364e35_6.1.7601.21896_none_ca510f48754b8f46.manifest |
File version |
Not applicable |
File size |
3,456 |
Date (UTC) |
12-Jan-2012 |
Time (UTC) |
07:29 |
Additional files for all supported IA-64–based versions of Windows Server 2008 R2 SP1
File name |
Ia64_tsprint.inf_31bf3856ad364e35_6.1.7601.21896_none_6e3417babcec270c.manifest |
File version |
Not applicable |
File size |
3,452 |
Date (UTC) |
12-Jan-2012 |
Time (UTC) |
07:17 |
Need more help?
Want more options?
Explore subscription benefits, browse training courses, learn how to secure your device, and more.
Время на прочтение1 мин
Количество просмотров73K
К сожалению не все принтеры печатают через перенаправление в windows server 2008 easy print. Для того чтобы они стали печатать придется установить их драйвер на сервер. Затем нужно запустить команду gpedit.msc. В открывшейся оснастке выбрать:
Computer configurations->
Windows components->
Remote Desktop Services->
Remote Desktop Session Host->
Printer Redirection
Здесь изменть свойство use remote easy printet driver first в состояние Disable.
Тогда сервер сначала будет пытаться печатать с помощью драйвера принтера и только если его не найдет обратится к драйверу easy print.
Теги:
- windows server 2008 r2
- easy print
- troubleshooting
+1
Комментарии1
перенаправление принтеров 2008r2
☑
0
karpos
15.08.13
✎
08:17
Всем привет! Меня мучают многие вопросы). Один из таких windows2008r2 перенаправление принтеров.
1) Во всем мануалах говорится попробуйте отключить Esay print и установить драйвер на сервер от этого принтера. И как это сделать принтер не подключен к серверу драйвер при установке его просто не увидит и расстройства самого нет получается. Как это сделать я не пойму роль на сервер добавить, сервер печати.
2)Можно ли сделать так чтоб перенапровление принтеров или принтера по умолчанию было для одного пользователя или группы пользователей.
На данный момент я поставил маршрутизаторы mikrоtik во всех офисах и
и объединил офисы и моуг видит любой принтер на прямую. Но мне просто интересно что Esay print такое уг. У меня была проблема есть два принтера hp 1020. C один заработал сражу другой в сеанс перенаправился и не печатал. Выдавал ошибку пробная страница печати напечатана неправильно. Я все облазил дрова на клиенте одинаковые все одинаковое один работает другой нет обработчик печати смотрел RAW, FIX. Проблема решилась когда я в политике: Использовать в первую очередь драйвер Esay print поставил отключено тогда в дровах у принтера появился его родной драйвер я ничего не ставил. И у второго тоже родной драйвер.
Но теперь падает служба перенаправления принтеров с непонятной переодичностью и даже перезапуск не помогает а только перезагрузка сервера.
Может кто то расскажет тайны перенаправления принторов желательно доступно.
1
karpos
15.08.13
✎
08:28
Прошу прощения за ошибки торопился. И еще хочу сказать может кто то по этому поводу что то скажет. У меня в одном месте стоит cups сервер консольный на centos 6.3 к нему подключены все сетевые и принтеры через samba а от него по пользователям и к серверу по мне так вещь лучше чем Esay print.
2
povar
15.08.13
✎
08:28
в топу перенаправление
прописываешь все принтеры через локальный порт клиента и забываешь про все проблемы с печатью
3
floody
15.08.13
✎
08:31
3 вида перенаправления:
1) Easyprint, не нужно ставить никакие драйвера, все видится и печатается, кроме некоторых самых дубовых принтеров, единственное что непонравилось, через интернет медленновато, т.к. задание на печать много весит, ну и непонятные задержки иногда (2-40 секунд)
2) перенаправление RDP (не сам принтер, а драйвер принтера ставим на сервер) работает быстрее, но не всегда есть драйверы для нужной ОС
3) screwdrivers
4
karpos
15.08.13
✎
09:02
Вот второй вариант это как?
5
karpos
15.08.13
✎
09:02
Нужно ставить роль сервер печати ?
6
floody
15.08.13
✎
09:21
(5) нет, только драйверы всех нужных принтеров
7
Vovan_Magadan
15.08.13
✎
09:32
(0) все вопросы с любыми принтерами решаются программой ScrewDrivers сервер и на клиент машинах.
На самом сервере можно вообще не ставить драва на принтер (у нас щас так, на сервере ноль дров на разные принтера), а СкревДрайвер просто будет поток пересылать на машину клиента.
Ноль зависаний, рабоатет у многих
8
karpos
15.08.13
✎
10:06
floody вы хотите сказать что нужно принудительно поставить дрова но на какое устройство ?. захожу в устройства и принтеры новый принтер -> установить ……….и что дальше как указать что дрова вот эти для этого принтера если принтер перенаправляется не ip не физически не подключен.
9
zva
15.08.13
✎
10:10
Через диспетчер устройств
10
floody
15.08.13
✎
10:11
(8) устанавливать принтеры не нужно, только драйверы
Пуск — Принтеры и факсы — Свойства сервера печати — Драйверы — Добавить
запустится мастер добавления драйверов, его же можно запустить через любой установленный принтер, нажав кнопку «Сменить…» в свойствах принтера
11
karpos
15.08.13
✎
11:14
ммм хорошо понял спс
Доброго всем дня (или чего там у вас сейчас).
Вы наверное думаете, что сейчас пойдет речь о сервере терминалов, удаленном доступе, печати через
хитрожопую
непростую последовательность компьютер->сервер->компьютер->принтер HP? Вы чертовски правы! Представляю вам небольшой рассказ: как я победил сообщение «Параметр задан неверно» при печати на HP LaserJet из сеанса удаленного доступа.
Итак, предыстория:
Стоит у нас Сервер терминалов. Вернее, теперь это модно называть «сервер удаленных рабочих столов«. ОС — Microsoft Windows Server 2008 R2 Standart. На сервере установлена 1С-Предприятие с которым, собственно, клиенты сервера и работают. Так повелось, что принтеры у клиентов разные, но все одного производителя — Hewlett Packard.
Первым, если склероз мне не изменяет, начал бунтовать HP LaserJet P1566. Подключенный к компьютеру с Windows 7 Pro, он работал без нареканий. Но при попытке распечатать что-либо из 1С (из сеанса удаленного рабочего стола) молчал как партизан. Ну типа, нажал «Печать» — и ничего. Ни распечатанного документа, ни ошибки. Just silence. Ни на какие уловки и провокации не поддавался. Установка и переустановка драйверов разных версий не помогала, даже всемогущие и всезнающие поисковики выдавали всякий фарш из информации, дабы не признаваться что тут они бессильны. Удалось лишь выяснить, что если попытаться из удаленного сеанса распечатать текстовый документ из блокнота, получается ошибка «Параметр задан неверно». Это была первая зацепка. Хотя ни «мастер исправления неполадок», будь он неладен, ни поиски по подробностям полученной ошибки ни к чему не привели.
Вобщем, поставил вместо этого партизана другую модель (HP LaserJet 1022), которая заработала как положено (была тогда такая возможность).
Долго ли, коротко ли, да только начал и другой принтер страдать таким же безобразием. Я уже начал подумывать, что это заговор машин против человечества. Но как-то очередной раз, разбираясь как там происходит печать на сервере удаленных рабочих столов, набрел на описание новомодной фичи от майкрософт — TS Easy Print. Оказывается печатать родными драйверами принтера с сервера нынче моветон и Майкрософт решила осчастливить системных администраторов новой технологией. Если интересуетесь подробностями, в конце статьи есть ссылки.
Как можно догадаться, далее я отключил использование по умолчанию Easy Print и — о чудо, все заработало!
После чего я вспомнил о страждущих, попавшихся мне на просторах рунета, страдающих от этой же проблемы. Наиболее подходящим местом для описания решения мне показался форум Microsof TechNet (этого блога тогда еще не было). Теперь вот решил этот случай зафиксировать для истории и здесь, хотя, вполне возможно, что, с обновлениями Server 2008 R2, эта проблема уже решена, у меня пока нет желания проверять. В поисковиках подобного описания я не нашел, посему дублирую свой пост из TechNet:
На сервере терминалов:
Пуск -> Выполнить -> gpedit.msc -> Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы терминалов\Сервер терминалов\Перенаправление принтеров -> использовать в первую очередь драйвер принтера Easy Print служб терминалов. Отключай нафик!
Теперь перезапусти сеанс клиента, у которого проблема с LaserJet 1120. И в его сеансе: Пуск, Устройства и принтеры, HP LaserJet M1120 (перенаправлено бла… бла…), правая кнопка мыши, Свойства принтера, вкладка Дополнительно.
В графе «Драйвер» не должен быть Easy Print Driver. Если эта гадина ещё там, значит на сервер надо установить подходящую версию драйвера для твоего принтера.
Новая волшебная технология Microsoft Easy Print Driver предназначалась освободить администраторов от установки драйверов принтеров на сервер терминалов. И у многих, дай бог ей здоровья, работает. Но, по крайней мере, с некоторыми моделями HP выдает труднодиагностируемую ошибку. (У меня не работает с HP LaserJet Pro 1566, HP LaserJet Pro M1212nf и HP LaserJet P1606dn). Кроме того, говорят, EPD способна превратить три страницы документа в 15мб трафика.
По-умолчанию, сервер терминалов пытается использовать Easy Print Driver, и если не получается (например, клиент не поддерживает), подбирает родной драйвер принтера. После отключения «Использовать в первую очередь драйвер принтера Easy Print», сервер наоборот, в первую очередь найти подходящий принтеру драйвер, а потом использует Easy Print.
Доп. материалы:
http://itband.ru/2010/03/ts-easy-print-practise/
(там, кстати, в коментах девушка описала такую же ситуацию как у нас с тобой)
Может пригодиться при установке родного/подходящего драйвера:
http://technet.microsoft.com/en-us/library/cc775290(WS.10).aspx