Привет всем моим немногочисленным читателям, которых почти нет. Время для новой, интересной истории от админа кислых щей. Тема предыдущего поста перекликается с сегодняшней историей и обязательна хотя бы к беглому ознакомлению.
Дело начинается в 5 утра, когда ваш покорный слуга мирно спал. В момент когда начал звонить телефон, я подумал, что это уже будильник, но почему-то организм упорно не хотел просыпаться. Проспав около 4 часов, мозгу очень туго даются размышления на тему компьютерных ошибок.
Ошибка при печати из 1Ски. Программа не дает вывести печатные формы на экран, и соответственно не печатает на принтере. Не печатает от нескольких пользователей, как выяснилось чуть позже не печатал от всех пользователей.
Прежде всего проверил принтер с помощью печати пробной страницы, все работает, жужжит и печатает. Значит проблема не в принтере. Пробовал печать из 1С, тестовый документ - не печатает. Разбудил программиста, он был очень рад услышать меня 5:30, однако где-то к 6:00 помог разобраться в проблеме.
Ошибка такая возникает, когда 1Ска пытается обратиться к принтеру, при проверке возможности печати на нём. Но принтер работает, тогда, где же свинья зарылась? Всё оказалось до банальнейшего просто - если это не принтер пользователя и 1Ска стопорится при проверке возможности печати, то скорее всего виноват диспетчер печати на сервере. Именно так и оказалось. Зайдя в принтеры и факсы на сервере я не увидел ни одного устройства. В службах диспетчер очереди печати так же был отключен. Стоило его включить и строчки офисных принтеров разлились передо мной, аки море необъятное. На тот момент все было хорошо, я выключил компьютер и лег досыпать остаток сна, но конец истории на этом моменте не наступил.
Приехав на работу обнаружил, что диспетчер печати снова отрублен. В свойствах службы, на вкладке восстановление при первом и втором сбое стоял перезапуск диспетчера, а при последующих сбоях - не предпринимать действий. Поставив перезапуск службы при последующих сбоях, довольный я закрыл "управление" компьютером, но интуиция подсказывала, что проблема не решена до конца.
Ради любопытства зашел посмотреть раскинувшееся ранним утром море принтеров, и тут меня ждала неожиданность. Море оказалось настолько большим, что сразу стало понятно что так быть не должно. Огромное количество принтеров в разных сеансах и от разных пользователей составляли список, в котором вертикальный ползунок представлял собой тонкую маленькую линию. В этот момент я подумал: "Они были принтеры. Они заполонили всю планету", почти как в КВН. Я судорожно начал удалять неиспользуемые принтеры, коих наплодилось более чем достаточно.
Мозг лихорадочно искал решения новой проблемы, отматывал время, проверял старые бэкапы, старался вспомнить все изменения, которые делал в последние дни. Решение было найдено достаточно быстро - пару дней назад поменял исполняющий файл для терминального доступа к 1Ске. Судя по всему в коде не было прописано завершение службы печати при разрыве RDP соединения. Из-за этого при подключении пользователя к 1Ске каждый раз создавалась отдельная сессия для принтера, которая оставалась открытой даже после того как пользователь закрывал 1Ску и окно терминального доступа.
Проверил код программы. Завершение службы splwow64.exe отвечающей за печать всё же стояло. Хм, значит проблема скрыта где-то еще. Интернет подсказал самое быстрое и правильное решение: надо внести этот процесс в список служб, которые завершает свою работу, при завершении терминального соединения.
Далее идет выдержка из предыдущего поста. Открываем реестр hkey_local_machine\system\currentcontrloset\control\terminalserver\sysprocs и добавляем dword с названием SPLWOW64.exe со значением 0.
Проблема была успешно решена. С тех проблем с печатью на принтерах не возникало, а RDP подключения закрывались без проблем. Вот такая вот интересненькая история со мной приключилась.
Спасибо, что прочитали.