如何在 Windows 中删除不存在的打印机?

如何在 Windows 中删除不存在的打印机?

一些网络打印机已从打印服务器上删除,我希望通过脚本(例如objPrinter.delete_在 vbs 中使用)从仍然引用它们的任何客户端自动删除它们;最好,我真的想知道哪个在这些情况下,我会删除打印机,并自动连接合适的替换打印机。如果我能首先读取这些已停用的打印机列表,这并不难。

GUI 中的情况是,打印机仍然显示在“设备和打印机”下,打印机符号仅显示默认打印机图标,呈灰色,旁边显示黄色警告三角形。但打印机确实不是例如,通过 WMI 查询“ ”列出SELECT * FROM Win32_Printer。还有其他查询可以成功完成此操作吗?

答案1

通过命令行而不是 GUI 来删除网络打印机,可以通过更新注册表来实现。

以下两个注册表项包含已安装的打印机定义:

HKEY_CURRENT_USER\Printers\Connections
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Providers\LanMan Print Services\Servers\Printers

您需要找到上述包含要删除的网络打印机的子键的名称。一旦您知道它们的名称,这也成为一种检查某台打印机当前是否安装的方法。删除子键,然后重新启动以验证打印机是否保持删除状态。

这里有几个要点:

  1. 可能需要停止打印后台处理程序服务。
  2. 打印机队列必须为空,位于文件夹 C:\Windows\System32\spool\PRINTERS\。如果打印队列中有项目,则无法删除打印机。另请参阅文章如何强制清除 Windows 中的打印队列
  3. 删除打印机的 GUI 方式是以管理员身份运行 printui /s /t2,选择打印机,单击“删除”按钮,选中“删除驱动程序和驱动程序包”,然后单击“确定”。

您可以在文章中找到更多详细信息 修复无法在 Windows 中移除或删除网络打印机的问题

答案2

使用 Revo Uninstaller 确保所有东西都已删除,打印机仍显示为共享。在尝试了网络上的所有方法后,我打开了设备管理器,显示驱动程序仍然存在,然后卸载了这些驱动程序,我的问题就解决了。

答案3

我遇到了同样的问题,只是 HKLM\System\ControlSet001\Enum\SWD\PRINTENUM 和 HKLM\System\CurrentControlSet\Enum\SWD\PRINTENUM、HKEY_CURRENT_USER\Printers\Connection 和 HKEY_USERS.DEFAULT\Printers 中的打印管理/移除/删除/注册表删除均不起作用。我尝试了以下所有方法:

清空后台处理程序文件夹:当已删除的打印机不断重新出现时,可能是因为与该打印机关联的作业仍在后台处理程序中,无法清除。在 Server 2012 R2 及之前的版本中,您需要检查以下路径:C:\WINDOWS\system32\spool\PRINTERS。在那里,您将看到扩展名为 .shd 和 .shl 的后台处理文件。删除其中包含的所有文件,然后重新启动后台处理程序服务。删除驱动程序:在极少数情况下,驱动程序将与特定打印设备相关联并导致其持续存在。如果由于 Server 2012 R2 中的访问被拒绝而无法删除打印机,请尝试删除该驱动程序。如果其他客户端仍在使用该驱动程序,这可能会导致很多问题,因此请确保在安静的时间内执行此操作。重新启动服务器,看看幽灵打印机是否消失了。如果是这样,您可以安全地重新安装驱动程序。如果之前的版本已过时,请尝试升级到较新的版本。玩打印机后台处理程序游戏:有时移除打印机可能需要您稍微灵活一点。一些管理员报告说,他们必须停止后台处理程序,然后启动它,然后在后台处理程序启动完成之前立即尝试通过打印管理控制台删除打印机。这可能需要尝试几次。检查是否有杂散的注册表项和重定向:如果您发现由于 Server 2012 R2 中的访问被拒绝而无法删除幽灵打印机,则有可能它仍在注册表中。残留的注册表项可能会阻止删除打印机。要从 Windows Server 2012 R2 中的注册表中删除打印机,请尝试扫描注册表项并使用软件工具运行修复过程。

我有 42 台打印机,大多数是 4 到 5 台相同的打印机,无论我怎么尝试,它们都会不断出现。最后,在即将重建机器之前,我绝望地尝试了 CCleaner 的注册表清理(可能有更好的,但手头有这个,它解决了这个问题。

相关内容