2013-07-11 1 views
1

초보자는 here's the WMI module I'm referring to입니다.파이썬의 wmi 모듈로 네트워크 프린터를 제거 하시겠습니까?

많은 조합의 코드를 시도했으며 명령 줄에서 wmic를 사용하여 네트워크 프린터를 제거하는 방법과 VB에서 wmi를 사용하여 네트워크 프린터를 제거하는 방법에 대한 기본적인 지식을 이해했습니다.하지만 여전히 할 수 있습니다. 이 파이썬 모듈에서 그렇게하는 법을 이해하지 못합니다.

누구나이 경험이 있습니까? 나는 일반적으로 (이 프로그램이 함께 XP에 사용됩니다) 윈도우 7 시스템에서, 이클립스를 PyDev와 함께 테스트하고 있습니다, 또한 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

정도로 c.win32_printer''Delete_' 같은 방법 ("\\\\ 서버 \\ 프린터"). Delete_' – RRUZ

+0

@RRUZ 정확히 동일한 오차를 사용해보십시오. – EpicCyndaquil

+0

'c.win32_printer ("\\\\ server \\ printer") 구문을 사용하여 프린터 인스턴스의 속성에 액세스 할 수 있습니까? DEVICEID'? 나는 왜 WMI에 익숙하지만 왜이 python 모듈에 익숙하지 않았기 때문에 물어 본다. – RRUZ

답변

0

친구가 해결책을 발견! 어떤 이유

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

는 서버 이름 (및 프린터 이름)은 대소 문자를 구분, 그래서 그것을 위해 눈을 밖으로 유지하는 것 같다. 나는 그것이 파이썬이 대소 문자를 구별하기 때문에 그것이라고 생각할 것이다. 그리고 그것은 WMI가 아닌 파이썬을 통해 비교된다.