Назад | Перейти на главную страницу

Могу ли я отключить WSD (веб-службы для устройств) на Server 2012 / R2? Как?

Я ищу способ отключить WSD на Server 2012 и Server 2012 R2. По сути, ряд наших принтеров на ряде наших серверов печати решили, что использовать эту чертову службу лучше, чем использовать порты TCP / IP, которые им были назначены, и они переходят на порты WSD, что приводит к тому, что пользователи не могут распечатать на эти принтеры.

На сервере Windows 2008 R2 я могу предотвратить такое поведение, остановив и отключив службу PnP-X IP Bus Enumerator.однако эта служба, похоже, отсутствует в Server 2012.

Единственные предложения, с которыми я столкнулся, чтобы остановить такое поведение, не оптимальны.

  1. Отключите обнаружение сети (от которого зависит работа WDS)
  2. Блокировать WDS на брандмауэре
  3. Отключите функцию WDS на принтерах.

Мне нужен способ отключить эту службу (и только эту службу) на сервере печати, потому что любой из других вариантов требует гораздо больше работы, чем хотелось бы (2, 3), или имеет нежелательные побочные эффекты (1 ). Кто-нибудь знает, как это сделать?

Боюсь, что нет переключателя "Off" для WSD специально для обнаружения принтеров в Windows Server

В качестве альтернативы отключению службы «Хост поставщика обнаружения функций» вы можете изменить действие следующих исходящих правил на «Запретить» в брандмауэре Windows в режиме повышенной безопасности:

Это будет специально блокировать события обнаружения WSD и WSDAPI

Если ваши серверы печати отделены от сетей принтеров, заблокируйте межзонный трафик на эти конкретные порты вместо:

  • TCP 5357 - WSDAPIEvents
  • TCP 5358 - WSDEvents Secure
  • UPD 3702 - публикация WSD

Я не думаю, что вам нужно отключать входящий 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.

Выполните эти быстрые действия для всех новых принтеров.

Надеюсь, это поможет

Извините за мой английский