我正在寻找一种在 Server 2012 和 Server 2012 R2 上禁用 WSD 的方法。基本上,我们的一些打印服务器上的一些打印机已经决定使用这种该死的服务比使用他们分配的 TCP/IP 端口更好,他们正在将自己转换为 WSD 端口,这导致用户无法使用打印到这些打印机。
在 Windows 2008 R2 服务器上,我可以通过停止和禁用 PnP-X IP Bus Enumerator 服务来防止这种行为,但是,该服务似乎不存在于 Server 2012 中。
我遇到的阻止这种行为的唯一建议都是次优的。
- 关闭网络发现(WDS 依赖其运行)
- 在防火墙处阻止 WDS
- 禁用打印机上的 WDS 功能。
我想要一种在打印服务器上禁用此服务(并且仅此服务)的方法,因为任何其他选项都涉及比我想要的更多的工作 (2, 3) 或具有不良副作用 (1 )。有谁知道这样做的方法?
恐怕没有专门用于 Windows Server 中打印机发现的 WSD 的“关闭”开关
作为禁用“功能发现提供程序主机”服务的替代方法,您可以在高级安全 Windows 防火墙中将以下出站规则的操作更改为拒绝:
这将专门阻止 WSD 和 WSDAPI 发现事件
如果您的打印服务器与您的打印机网络隔离,请改为阻止这些特定端口上的区域间流量:
我认为您不需要在打印服务器上禁用 WSD 入站。
1)合并这个reg文件:
这会禁用 WSD 打印服务的启动并删除 WSDPrint.Inf 的位置,如果有东西想强制它启动的话。
2) 将 WINDOWS\INF 文件夹中这 3 个文件的扩展名重命名为 .bak :
这会阻止 WSD 打印设备启动。
虽然 WSD 打印机显示在添加打印机窗口中,并且您似乎可以添加它们,但从未创建 WSD 端口,并且未安装打印机的 WSD 驱动程序。满足所有标准。在 Windows Server 2012 R2 中验证。
1 缺点:在执行任何与打印或 WSD 相关的 Windows 更新之前,您应该将这 3 个文件重命名为其原始名称。然后在补丁安装成功后将它们改回.bak。
您想要的服务是“Function Discovery Provider Host”(也称为
fdPHost
)。这将禁用 WS-Discovery 协议。但是,这也有禁用 SSDP 支持的副作用。通过设备和打印机手动将打印机安装到网络。选择“使用 TCP/IP 地址或主机名添加打印机。在下一个窗口中,确保将设备类型选项更改为 TCP/IP 设备,而不是自动检测选项(通常是默认设置)。输入打印机的 IP 地址,然后单击下一步。从此时开始正常完成安装。这应该可以解决此问题。
这是一个 reg 和一个批处理文件,使其成为 2 次单击操作:
https://drive.google.com/open?id=1mlx_ziiygRib9f4UkweBvAV8n-DXYNKg
disablewsdservice.reg 是 RoelDS 提供的注册表黑客:
disablewsdservice.EN.bat 是一个批处理文件,用于在重命名之前获取需要重命名的文件的所有权。它还通过运行注册表黑客来结束。
您需要在提升的(管理员)命令提示符下运行批处理文件。对任何英语版本的 Windows 使用 EN 文件,对任何法语版本使用 FR 文件。
您可以运行批处理然后运行 reg,或者其他方式无关紧要。
在 W10 LTSC 上成功测试。
我做了什么:
为所有新打印机执行这些快速步骤。
希望这会有所帮助
我在 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\WSD Port\Ports 下找到了我的 WSD 端口的注册表项。有一个与端口名称相同的密钥。一旦删除了有问题的键,打印机就会停止自动将自己分配给该端口。
注意:对于注册表不熟悉的人,您可以右键单击该键并选择导出。如果事情停止工作,您可以运行刚刚导出的 reg 文件以恢复信息。