Проблеми със свързването на мрежовите принтери след инсталирането на KB3170455

Открих един гаден проблем с една от актуализациите на Microsoft за сигурност през юли. Става въпрос за KB3170455, освободен на 12 юли 2016 г. След инсталирането на тази актуализация в домейна може да възникнат проблеми при опит за свързване на мрежов принтер.

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

Когато се опитвате да инсталирате (свържете) принтер от сървър за печат (на Windows Server 2008 R2) на клиенти на домейн (Windows 10, Windows 7), се появява грешка.

Свържете се с принтера

На вашия компютър е в сила политика, която не ви позволява да се свържете с тази опашка за печат. Моля, свържете се със системния си администратор.

Политиката, инсталирана на този компютър, не позволява връзка с тази опашка за печат. Свържете се със системния си администратор.

При някои модели принтери при опит за свързване на мрежов принтер се появи друго съобщение:

Вярвате ли на този принтер?

Windows трябва да изтегли и инсталира софтуерен драйвер от компютъра \\ PrintServerName, за да отпечата на PrinterName. Продължете само ако се доверите на \\ PrintServerName и мрежата

Вярвате ли на този принтер?
Windows трябва да изтегли и инсталира драйвера от компютъра \\ PrintServerName, за да отпечата на PrinterName ...

Когато щракнете върху бутона "Инсталиране на драйвер", се появява прозорец на UAC, който ви подканва да въведете администраторски данни. Въпреки че по-ранните потребители могат да свързват тези принтери без проблеми (включена е политика, която позволява на обикновените потребители да инсталират драйвери за принтери без права на местен администратор).

Сравнявайки инсталираните актуализации на проблемните компютри, установихме, че проблемът се наблюдава на компютри с инсталирана актуализация на KB3170455 (MS16-087: Описание на актуализацията на защитата за компоненти за печат на Windows за печат: 12 юли 2016 г.). Всъщност, когато деинсталирате тази актуализация, принтерите са свързани правилно.

wusa.exe / деинсталирате / kb: 3170455 / тих / norestart

забележка. Всички начини за правилно премахване на актуализациите в Windows

Но не всичко е толкова просто, актуализацията всъщност не е крива, но фиксира специфична критична уязвимост в печатната подсистема на Windows. Актуализацията включва също предупреждение на потребителя, когато се опитва да инсталира ненадеждни или неподписани драйвери на принтера. Да, и в Windows 10 тази актуализация е пришита в кумулативна актуализация и затова просто не може да бъде върната обратно. Така че просто деинсталирането на актуализацията не решава проблема.

Статията https://support.microsoft.com/en-us/kb/3170005 определя критериите, на които драйверите за принтери трябва да отговарят, за да бъдат инсталирани правилно на клиенти:

  • Шофьорът трябва да има доверие (подписан с надежден цифров подпис)
  • Драйверът трябва да бъде опакован (драйвери за печат, запознати с пакета). Инсталирането на неразопаковани драйвери (драйвери за принтера на v3 v3) през режим Point and Print Restrictions не е възможно

Затова Microsoft препоръчва:

  • заменете драйверите на сървърите за печат с пакетирани (спецификация на V3 V3). Можете да определите дали драйверът е опакован или не с помощта на конзолата на Print Manager, отворете секцията с драйвери. Интересуваме се от колоната опакован, за пакетираните драйвери е посочено състоянието вярно. Ще остане да активира политики Ограничения за точки и печат  (в секциите Конфигурация на компютъра> Политики> Шаблони на администратор> Принтери и в Конфигурация на потребителя> Политики> Шаблони на администратор> Контролен панел> Принтери) и задайте Не показвайте предупреждение или подвижност (Не показвайте предупреждение или искане за повдигане). Освен това посочете FQDN имена на надеждни сървъри за печат.
  • ако драйверите са остарели и не могат да бъдат актуализирани, се препоръчва да ги инсталирате предварително на клиентски компютри. В този случай няма проблеми със свързването на принтери..
забележка. За принтерите Canon, Sharp, KonicaMinolta има малък трик, който позволява на системата да приеме, че драйверът е пакетиран. За да направите това, на сървъра за печат отворете клона на системния регистър HKLM \ System \ CurrentControlSet \ Control \ Print \ Enviroments \ Windowsx64 \ Drivers \ ... \ Име на драйвера \ и за желания драйвер променете стойността на ключа PrinterDriverAttributes, добавяне на 1 към текущата стойност. В моя случай стойността на атрибута беше 5, промених я на 6. Същото нещо трябва да се направи и с атрибута на драйвера в клона HKLM \ System \ CurrentControlSet \ Control \ Print \ Enviroments \ Windowsx NT x86 \ Drivers ... \ Име на драйвера \. След рестартиране мрежовите принтери на Canon започнаха да се свързват без предупреждение.