Печаль а не печать.
Короче, есть сервер с 2008 R2. Терминальный такой, хороший. На нём сидят пользователи, штук 200. Ходят туда-сюда, гоняют программку одну.
Пользователи, мать их так, хотят печатать. Для того, чтобы сделать им радость решил воспользоваться штукой, которая называется EasyPrint в Win2008R2. Если клиент имеет установленный .NET Framework 3.5 SP 1 и XPS viewer то тогда терминальный сервер подцепит локальные принтеры клиента на себя и позволит клиенту печатать на любом принтере, который установлен локально. Это очень приятно и удобно.
Сначала, 10 клиентов жили и не жаловались.
После их завелось поболее. К сожалению, Win XP SP3 (.NET FW 2.0 + 3.5.1 + 4.0, latest upgrades) имеет одну неприятную фитчу. Он находит в сети все расшареные принтеры и подцепляет их с префиксом Auto в систему. Тоесть, каждый клиент разживается 10-20 принтерами по сети + локальными. Вся эта толчея принтеров просасывается на терминальный сервер.
И вот тут печать превращается в печаль.
200 клиентов * 20 принтеров — это ужасные 4000 принтеров.
Если зайти на сервер, то можно увидеть сообщения от загибающегося спулера, что он столько принтеров держать не может.
Если зайти в настройки принтеров и посмотреть на порт, к которому подключен виртуальный принтер, то можно заметить, что порты для них называются TSxxxx и последний заканчивается на TS1024.
На самом деле, проблем с этим больших нет. Всё хорошо. Принтеры сосутся и печатают. Лог потихонечку заростает бякой, но печать идёт.
И вот — фиаско. Есть у нас люди, которые из блокнота любят печатать. И печать идёт наистраннейшим образом. Первая страница печатается очень хорошо. А вот начиная со второй — третьей страницы печать идёт ужаснейшим шрифтом, в котором расстояние между буквами не соблюдается вообще и читать эту кутерьму вообще не возможно.
То же самое происходит, когда программисты распечатывают исходники программ из IE9 со страницы с тегом PRE.
При этом Word такой проблемы в себе не обнаруживает. Заразе подвержены только моноширные шрифты.
Глубокий гугл дал мне идею о том, что есть подобная ошибка и решается она в SP1 для .NET FW 3.0 (
kb946411)
Установка этого добра на клиенты не прокатила, ибо клиенты обновлены по самые яйки и все сервиспаки на дотнет в них стоят.
Помогает только ребут сервера.
Вопрос. Как с этим бороться?
(PS. Мне всё равно надо будет обслуживать больше чем 1024 принтеров, так что не предлагать отключение Auto* принтеров на клиенте. Мне надо чтобы они печатали.)
Может быть есть какая-либо сторонняя разработка? Конечно же, приветсвтуется решение средствами самого MS, ибо ставить что-то на сервер паршиво. Кстати, сам сервер не обновлялся давненько. Может какой хотфикс на него поставить?