Я ищу способ отключить WSD на Server 2012 и Server 2012 R2. По сути, ряд наших принтеров на ряде наших серверов печати решили, что использовать эту чертову службу лучше, чем использовать порты TCP / IP, которые им были назначены, и они переходят на порты WSD, что приводит к тому, что пользователи не могут распечатать на эти принтеры.
На сервере Windows 2008 R2 я могу предотвратить такое поведение, остановив и отключив службу PnP-X IP Bus Enumerator.однако эта служба, похоже, отсутствует в Server 2012.
Единственные предложения, с которыми я столкнулся, чтобы остановить такое поведение, не оптимальны.
Мне нужен способ отключить эту службу (и только эту службу) на сервере печати, потому что любой из других вариантов требует гораздо больше работы, чем хотелось бы (2, 3), или имеет нежелательные побочные эффекты (1 ). Кто-нибудь знает, как это сделать?
Боюсь, что нет переключателя "Off" для WSD специально для обнаружения принтеров в Windows Server
В качестве альтернативы отключению службы «Хост поставщика обнаружения функций» вы можете изменить действие следующих исходящих правил на «Запретить» в брандмауэре Windows в режиме повышенной безопасности:
Это будет специально блокировать события обнаружения WSD и WSDAPI
Если ваши серверы печати отделены от сетей принтеров, заблокируйте межзонный трафик на эти конкретные порты вместо:
Я не думаю, что вам нужно отключать входящий WSD на ваших серверах печати.
1) Слейте этот рег файл:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WSDPrintDevice]
"Type"=dword:00000001
"Start"=dword:00000004
"ErrorControl"=dword:00000001
"Tag"=dword:00000028
"ImagePath"=hex(2):00,00
"DisplayName"="@WSDPrint.Inf,%WSDPrintDevice.SVCDESC%;WSD Print Support"
"Group"="Extended Base"
"Owners"=hex(7):00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WSDPrintDevice\Enum]
"Count"=dword:00000000
"NextInstance"=dword:00000000
Это отключает запуск службы печати WSD и удаляет расположение WSDPrint.Inf, если что-то хочет заставить ее запуститься.
2) Переименуйте расширения этих трех файлов в папке WINDOWS \ INF в .bak:
WSDPrint.Inf
WSDPrint.PNF
WSDScDrv.inf
Это предотвращает запуск устройств печати WSD.
Хотя принтеры WSD отображаются в окне «Добавить принтер» и кажется, что вы можете их добавить, порты WSD никогда не создаются, а драйвер WSD для принтера не устанавливается. Все критерии удовлетворены. Проверено в Windows Server 2012 R2.
1 Недостаток: вы должны переименовать 3 файла обратно в их исходные имена, прежде чем выполнять какие-либо обновления Windows, связанные с печатью или WSD. А затем измените их обратно на .bak после успешной установки патча.
Установите принтер вручную через устройства и принтеры в сеть. Выберите параметр «Добавить принтер, используя адрес TCP / IP или имя хоста. В следующем окне обязательно измените параметр« Тип устройства »на« Устройство TCP / IP », а НЕ параметр« Автоопределение »(который обычно используется по умолчанию). Введите IP-адрес принтера и нажмите Далее. С этого момента завершите установку как обычно. Это должно решить эту проблему.
Вам нужна услуга «Узел поставщика обнаружения функций» (также называемый fdPHost
). Это отключит протокол WS-Discovery. Однако это имеет побочный эффект - отключение поддержки SSDP.
Вот рег и командный файл, чтобы сделать эту операцию в 2 клика:
https://drive.google.com/open?id=1mlx_ziiygRib9f4UkweBvAV8n-DXYNKg
disablewsdservice.reg - это взлом реестра, предоставленный RoelDS:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WSDPrintDevice]
"Type"=dword:00000001
"Start"=dword:00000004
"ErrorControl"=dword:00000001
"Tag"=dword:00000028
"ImagePath"=hex(2):00,00
"DisplayName"="@WSDPrint.Inf,%WSDPrintDevice.SVCDESC%;WSD Print Support"
"Group"="Extended Base"
"Owners"=hex(7):00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WSDPrintDevice\Enum]
"Count"=dword:00000000
"NextInstance"=dword:00000000
disablewsdservice.EN.bat - это командный файл, который становится владельцем файлов, которые вам нужно переименовать, прежде чем вы переименуете их. Это также заканчивается запуском взлома реестра.
TAKEOWN /F %WINDIR%\INF\WSDPrint.Inf
ICACLS %WINDIR%\INF\WSDPrint.Inf /grant administrators:F
ren %WINDIR%\INF\WSDPrint.Inf WSDPrint.Inf.bak
TAKEOWN /F %WINDIR%\INF\WSDPrint.PNF
ICACLS %WINDIR%\INF\WSDPrint.PNF /grant administrators:F
ren %WINDIR%\INF\WSDPrint.PNF WSDPrint.PNF.bak
TAKEOWN /F %WINDIR%\INF\WSDScDrv.inf
ICACLS %WINDIR%\INF\WSDScDrv.inf /grant administrators:F
ren %WINDIR%\INF\WSDScDrv.inf WSDScDrv.inf.bak
disablewsdservice.reg
Вам необходимо запустить командный файл в командной строке с повышенными привилегиями (администратор). Используйте файл EN для любой английской версии Windows и файл FR для любой французской версии.
Вы можете запустить пакет, а затем рег, или наоборот, это не имеет значения.
Успешно протестирован на W10 LTSC.
Что я сделал: 1 - Зайдите в веб-интерфейс принтера и отключите все относящиеся к WS вещи в сетевых настройках (WS Discovery, WS Scan, WS Print). Это приведет к тому, что принтер больше никогда не будет рекламировать через WSD 2 - проверьте компьютеры и при необходимости измените порт на TCP / IP.
Выполните эти быстрые действия для всех новых принтеров.
Надеюсь, это поможет
Извините за мой английский