<div dir="ltr">On Tue, Oct 23, 2012 at 11:44 AM, Kevin Holleran <span dir="ltr"><<a href="mailto:kdawg44@gmail.com" target="_blank">kdawg44@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div class="h5">On Tue, Oct 23, 2012 at 11:39 AM, Tim Golden <span dir="ltr"><<a href="mailto:mail@timgolden.me.uk" target="_blank">mail@timgolden.me.uk</a>></span> wrote:<br><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>On 23/10/2012 16:17, Kevin Holleran wrote:<br>
> I am still having a small implementation problem....<br>
><br>
> [code]<br>
> HKLM = winreg.HKEY_LOCAL_MACHINE<br>
> NICs =<br>
> "SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002bE10318}"<br>
><br>
>  registry = wmi.WMI(host, namespace="default").StdRegProv<br>
>   _, names = registry.EnumKey(HKLM,NICs) # <-- Error<br>
</div><div>> [/code]<br>
><br>
> [error]<br>
>   File "wmi.pyc", line 241, in handle_com_error<br>
> wmi.x_wmi: <x_wmi: Unexpected COM Error <a href="tel:%28-2147352567" value="+12147352567" target="_blank">(-2147352567</a>, 'Exception<br>
> occurred.', (0,<br>
>  u'SWbemProperty', u'Type mismatch ', None, 0, -<a href="tel:2147217403" value="+12147217403" target="_blank">2147217403</a>), None)><br>
> [\error]<br>
<br>
<br>
</div>I can see nothing wrong with that. On my system the following code works<br>
fine:<br>
<div><br>
<code><br>
import _winreg as winreg<br>
import wmi<br>
<br>
</div>host = "SVR18"<br>
<div><br>
HKLM = winreg.HKEY_LOCAL_MACHINE<br>
NICs =<br>
"SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002bE10318}"<br>
<br>
registry = wmi.WMI(host, namespace="default").StdRegProv<br>
_, names = registry.EnumKey(HKLM,NICs) # <-- Error<br>
<br>
</div>print names<br>
<br>
</code><br>
<br>
Am I understanding you correctly? Can you send me an interpreter<br>
screendump showing the failure with the traceback (just in case anything<br>
useful occurs to me when I see it)?<br>
<br>
<br>
TJG<br>
</blockquote></div><br></div></div><div>I will but I have to run to a meeting.  I will send over.  Another note, probably should have mentioned earlier, I am using py2exe & running the executable from the the machine that has access to these systems.</div>
<span class="HOEnZb"><font color="#888888">
<div><br></div><div>Kevin</div></font></span></div>
</blockquote></div><br><div>Here is the full traceback:</div><div><div><br></div><div>[output]</div><div><a href="http://Scan_NIC_Driver_Info_1.2.py">Scan_NIC_Driver_Info_1.2.py</a> -i testing_MSK_Server.csv -o MSK_Test_output.csv -u unreachable.csv</div>
<div>Parsing input file...</div><div><br></div><div>Connecting to IP...</div><div><br></div><div>Traceback (most recent call last):</div><div>  File "D:\Development\Scripts\Python\Scan_NIC_Driver_Info\Scan_NIC_Driver_Info_</div>
<div><a href="http://1.2.py">1.2.py</a>", line 70, in <module></div><div>    _, names = registry.EnumKey(HKLM,NICs)</div><div>  File "C:\Python27\lib\site-packages\wmi.py", line 431, in __call__</div>
<div>    handle_com_error ()</div><div>  File "C:\Python27\lib\site-packages\wmi.py", line 241, in handle_com_error</div><div>    raise klass (com_error=err)</div><div>wmi.x_wmi: <x_wmi: Unexpected COM Error (-2147352567, 'Exception occurred.', (0,</div>
<div> u'SWbemProperty', u'Type mismatch ', None, 0, -2147217403), None)></div></div><div><br></div><div>[/output]</div><div><br></div><div>Basically, it parses a list of hosts from a CSV, outputs a series of lines: host, driverDesc, diverDate, driverVersion.  Basically it pings the host first to make sure its up.</div>
<div><br></div><div>Here are the relevant parts to the script:</div><div><br></div><div>[code]</div><div><div> registry = wmi.WMI(host, namespace="default").StdRegProv</div><div>        _, names = registry.EnumKey(HKLM,NICs)</div>
<div>        print("Connected successfully.")</div><div>        try:</div><div>            for name in names:</div><div>                print name</div><div>                NIC = NICs + "\\" + name</div>
<div>                _, value_names, value_types = registry.EnumValues(HKLM, NIC)</div><div>                for value_name, value_type in zip(value_names, value_types):</div><div>                    if value_type == winreg.REG_SZ:</div>
<div>                        if value_name == "BusType":</div><div>                            _, busType = registry.GetStringValue(HKLM, NICs, value_name)</div><div>                        elif value_name == "DriverDesc":</div>
<div>                            _, driverDesc = registry.GetStringValue(HKLM, NICs, value_name)</div><div>                        elif value_name == "DriverDate":</div><div>                            _, driverDate = registry.GetStringValue(HKLM, NICs, value_name)</div>
<div>                        elif value_name == "DriverVersion":</div><div>                            _, driverVersion = registry.GetStringValue(HKLM, NICs, value_name)</div><div>                    if busType == 5:</div>
<div>                        outputline = host + "," + driverDesc + "," + driverDate + "," + driverVersion + "\n"</div><div>                        print outputline</div><div>                        outputFile.write(outputLine)</div>
<div>        except:</div><div>            print "Unable to query registry key for NIC adapters"</div></div><div>[/code]</div><div><br></div><div>Thanks again.</div><div><br></div><div>Kevin</div></div>