Нещодавно зіткнувся з прикольним багом пов’язаним як з операційною системою Windows 10, так і з принтером Canon i-SENSYS MF453dw.
Сумне в цій історії те що я не полюбляю возитись з принтерами, і тим паче виконувати роботу, що не входить до моїх службових обов'язків. Але це вже буде в одному з наступних постів.
Так от, спочатку розповім передісторію як виник баг, а вже потім вирішення самої проблеми.
На одному з робочих ноутів, перестав друкувати мережевий принтер. Принтер новий, придбаний десь тиждень тому (хочу я не впевнений, але не важливо). З інших ноутів в тому ж кабінеті, все ок. І все б нічого, але як тільки цей ноут перезавантажується, або вмикається зранку, то принтер циклічно починає друкувати одну строку з купою різних символів, та періодичною системною інформацією.
Циклічно, мається на увазі безкінечно, до поки сам принтер, не вимкнути, а потім ще раз не ввімкнути. На ноуті він як не працював, так і продовжує не працює, а з інших ноутбуків в мережі, все ок.
Перше, що спало на думку, це або забита черга, або вірус. Перевірив чергу, там пусто, перерив чергу інших принтерів, що були додані в цю систему, теж немає нічого.
Перевірка на віруси теж нічого не дала.
Про всяк випадок перевірив, чи немає якогось шкідливого завдання, що виконувало б цю дію при старті системи. Теж пусто.
Так як я не адмін на підприємстві, і не енікейщик (як вже казав, напишу про ц пізніше в іншому пості), я запитав хронологію дій, відколи це почалось. Тож мені сказали, що після купівлі цього притера, приходив енікейщик, встановив драйвери на всіх ноутбуках в кабінеті, перевірив щоб друкувало, та й пішов собі далі.
Ну ніби нічого такого не відбулось! Але………
Мені спало на думку, що це може бути глюк драйверів. Я спочатку видалив всі принтери, що були додані в систему, далі видалив драйвери нового принтера, та перезавантажив про всяк випадок систему. І фіг там, знову почався друк. Згадав, що я ж не видаляв драйвери від попереднього принтера, що стояв на місці нового.
І тут нарешті, знайшлась причина. При спробі видали цей драйвер (старий принтер був марки HP), мені повідомило, що неможливо видали драйвери та інші програмні продукти, що з ним пов’язані, бо в черзі цього принтера є незавершені роздруківки. Що досить дивно як на мне. Адже сам принтер з системи був видалений, а значить по логіці, повинна була й його черга друку видалитись.
І що саме цікаве, нещодавно (до встановлення нового принтера) виконуючий обов’язки адміна, вирішив змінити там діапазон IP-адрес, так би мовити для розмежування роботу різних відділів, щоб їх мережи не перетинались одна з одною. Діапазон IP-адрес в якому був старий принтер недоступний в новому діапазоні. Тобто послати на друк було нікуди!
І тут все стало на свої місця. Я згадав, що є в системі місце, до зберігаються задачі на друк, в спеціальних файлах.
%systemroot%\System32\spool\PRINTERS
Зайшовши туди, я відразу побачив ті злощасні завдання, точніше одне. Яке повинно було видалитись, але ні. І драйвери від старого принтера, постійно намагались завершити його, і їм було пофіг що принтера немає, і що новий принтер не HP, а Canon. Система упорото намагалась виконати завдання друку
Як кажуть: «Бачу ціль, не бачу перешкод»
Тож, для вирішення проблеми потрібно було видали ці файли. Щоб їх видалити, потрібно виконати наступну послідовність дій:
- Зупинити службу «Диспетчера друку»
- Видалити, все файли з папки «PRINTERS» що знаходяться за шляхом вказаним вище
- Знову запустити службу «Диспетчер друку»
- Перезавантажити систему
Після цих дій, притер робить нормально, і не друкую нічого, якщо його не просять =)
Звісно ж я встановив драйвери та все перевірив!