使用Python的wmi模块删除网络打印机?

时间:2013-07-11 01:29:56

标签: python windows printing wmi python-module

首先,here's the WMI module I'm referring to

我尝试过很多代码组合,并了解如何从命令行中删除带有wmic的网络打印机,以及如何在VB中删除wmi等网络打印机的基本知识,但我仍然可以'弄清楚如何在这个python模块中这样做。

有没有人有这方面的经验?我正在使用Eclipse中的PyDev进行测试,通常是在Windows 7机器上(该程序将与XP一起使用),但也在Windows 8上进行测试。

这是我尝试过的一些代码:

import wmi
c = wmi.WMI ()

c.win32_printer("\\\\server\\printer").delete

我收到以下错误:

wmi.x_wmi_invalid_query: <x_wmi: Unexpected COM Error (-2147217385, 'OLE error 0x80041017', None, None)>

1 个答案:

答案 0 :(得分:0)

一位朋友(可能希望保持匿名)找到了解决方案!

for printer in c.win32_printer():
    if printer.DEVICEID == "\\\\server\\printer":
    printer.delete_()

由于某种原因,服务器名称(可能还有打印机名称)似乎区分大小写,因此请密切注意。我猜这是因为python是区分大小写的,它是通过python而不是WMI进行比较。