2013-07-11 58 views
1

首先,here's the WMI module I'm referring to使用Python的wmi模塊刪除網絡打印機?

我已經嘗試了許多代碼組合,並瞭解如何從命令行中刪除網絡打印機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)> 
+0

嘗試使用'Delete_'方法,像這樣'c.win32_printer( 「\\\\服務器\\打印機」)。Delete_' – RRUZ

+0

@RRUZ完全同樣的錯誤。 – EpicCyndaquil

+0

您可以訪問使用這種語法'c.win32_printer(「\\\\服務器\\打印機」)。DEVICEID'打印機實例的屬性?我問,因爲我熟悉的WMI,但不是爲什麼這個Python模塊。 – RRUZ

回答

0

一個朋友(誰可能希望繼續無名)找到了解決辦法!

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

出於某種原因,服務器名稱(以及可能的打印機名稱)似乎是大小寫敏感的,所以留意了點。我猜這是因爲python區分大小寫,而且它是通過python而不是WMI進行比較的。