Проблеми з підключенням мережевих принтерів після установки KB3170455

Виявили одну неприємну проблему з одним з липневий оновлень безпеки Microsoft. мова про KB3170455, випущеному 12 липня 2016 року. Після установки цього оновлення в домені можуть виникнути проблеми при спробі підключити мережевий принтер.

Проблема виявлялася таким чином:

При спробі на доменних клієнтів (Windows 10, Windows 7) встановити (підключити) принтер з принт-сервера (на Windows Server 2008 R2), з'являється помилка.

Connect to Printer

A policy is in effect on your computer which prevents you from connecting to this print queue. Please contact your system administrator.

Встановлена ​​на даному комп'ютері політика не дозволяє підключення до даної черги друку. Зверніться до системного адміністратора.

На деяких моделях принтерів при спробі підключити мережевий принтер з'являлося інше повідомлення:

Do you trust this printer?

Windows needs to download and install a software driver from \\ PrintServerName computer to print to PrinterName. Proceed only if you trust the \\ PrintServerName and the network

Ви довіряєте цьому принтеру?
Windows потрібно завантажити і встановити драйвер з комп'ютера \\ PrintServerName для друку на PrinterName ...

При натисканні на кнопку "Встановити драйвер" з'являється вікно UAC з пропозицією ввести облікові дані адміністратора. Хоча раніше користувачі могли без проблем підключати ці принтера (включена політика, що дозволяє звичайним користувачам встановлювати драйвера принтерів без прав локального адміністратора).

Шляхом порівняння встановлених оновлень на проблемних комп'ютерах, виявили, що проблема спостерігається на комп'ютерах з встановленим апдейтом KB3170455 (MS16-087: Description of the security update for Windows print spooler components: July 12, 2016). І дійсно, при видаленні цього поновлення принтера підключаються коректно.

wusa.exe / uninstall / kb: 3170455 / quiet / norestart

Примітка. Всі способи коректного видалення оновлень в Windows

Але не все так просто, оновлення насправді не криве, а виправляє конкретну критичну уразливість в підсистемі друку Windowsю. Оновлення в тому числі передбачає видавати попередження користувача при спробі встановити недовірених або непідписані драйвера принтерів. Та й в Windows 10 це оновлення вшиті в кумулятивне оновлення, і так просто його вже не відкат. Так що простим видаленням поновлення проблему не вирішити.

У статті https://support.microsoft.com/en-us/kb/3170005 вказані критерії, яким повинні відповідати драйвера принтерів, щоб вони могли коректно встановлюватися на клієнтах:

  • Драйвер повинен бути довіреною (підписаний довіреною цифровим підписом)
  • Драйвер повинен бути упакованим (Package-aware print drivers). Установка не упакованих драйверів (non-package-aware v3 printer drivers) через режим Point and Print Restrictions неможлива

Тому Microsoft рекомендує:

  • замінити драйвера на принт-серверах на упаковані (специфікація Package-aware V3). Визначити чи є драйвер упакованим або немає, можна за допомогою консолі Print Manager, відкрийте розділ з драйверами. Нас цікавить колонка Packaged, для упакованих драйверів вказано статус True. Чи залишиться включити політики Point and Print Restrictions  (В розділах Computer Configuration> Policies> Admin Templates> Printers і в User Configuration> Policies> Admin Templates> Control Panel> Printers) і виставити Do not show warning or elevation prompt (Не показувати попередження або запит на підвищення прав). Додатково зазначаємо FQDN імена довірених принт-серверів.
  • якщо драйвера є застарілими і оновити їх не можна, рекомендується встановлювати їх на клієнтських ПК. В цьому випадку при підключенні принтерів проблем не виникне.
Примітка. Для принтерів Canon, Sharp, KonicaMinolta є невеликий трюк, що дозволяє системі вважати, що драйвер є упакованим. Для цього на принт-сервері, відкрийте гілку реєстру HKLM \ System \ CurrentControlSet \ Control \ Print \ Enviroments \ Windowsx64 \ Drivers \ ... \ Driver name \ і для потрібного драйвера змініть значення ключа PrinterDriverAttributes, додавши до поточного значення 1. У моєму випадку значення атрибута було 5, я поміняв його на 6. Те ж саме потрібно зробити з атрибутом драйвера в гілці HKLM \ System \ CurrentControlSet \ Control \ Print \ Enviroments \ Windowsx NT x86 \ Drivers ... \ Driver name \. Після перезавантаження мережеві принтера Canon стали підключатися без попереджень.