<div dir="ltr">Tim,<div><br></div><div>I am re-implementing in my script now.  I'll let you know how it goes... I just realized that the key that I sent over was completely wrong.... I am not sure how I even got it as it is the combination of two different keys from two different scripts... must have been working too long and everything blending together... :)</div>
<div><br></div><div>Thanks for your help!</div><div><br clear="all"><div dir="ltr">Kevin</div>
<br><br><div class="gmail_quote">On Tue, Oct 23, 2012 at 4:07 AM, Tim Golden <span dir="ltr"><<a href="mailto:mail@timgolden.me.uk" target="_blank">mail@timgolden.me.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 22/10/2012 21:01, Kevin Holleran wrote:<br>
> Tim,<br>
><br>
> I am looking here:<br>
><br>
> SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{BF9F6FB0-C999-4D19-BED0-144F77E2A9D6}<br>
><br>
> Enumerating the keys for a BusType == 5, then grabbing the values of<br>
> DriverDesc, DriverDate, & DriverVersion.<br>
><br>
> So I am doing this:<br>
<br>
</div>[... snip querying uninstallers ...]<br>
<br>
I don't have that particular uninstaller key but the code below, using<br>
the wmi module to hide the plumbing, queries all the installers and<br>
should give you enough of an idea, hopefully. For brevilty, I've only<br>
bothered with extracting string values; it would be easy to extract<br>
other datatypes.<br>
<br>
To perform the same query on another computer, just pass the other<br>
computer name (or IP address) as the first parameter to the wmi.WMI call<br>
(or use the named param "computer").<br>
<br>
<code><br>
import _winreg as winreg<br>
import wmi<br>
<br>
HKLM = winreg.HKEY_LOCAL_MACHINE<br>
UNINSTALLERS = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"<br>
<br>
registry = wmi.WMI(namespace="default").StdRegProv<br>
_, names = registry.EnumKey(HKLM, UNINSTALLERS)<br>
for name in names:<br>
    print name<br>
    uninstaller = UNINSTALLERS + "\\" + name<br>
    _, value_names, value_types = registry.EnumValues(HKLM, uninstaller)<br>
    for value_name, value_type in zip(value_names, value_types):<br>
        if value_type == winreg.REG_SZ:<br>
            _, value = registry.GetStringValue(<br>
              HKLM, uninstaller, value_name<br>
            )<br>
        else:<br>
            value = "(Non-string value)"<br>
        print u"  ", value_name, u"=>", value<br>
<br>
</code><br>
<br>
<br>
TJG<br>
<span class="HOEnZb"><font color="#888888">--<br>
<a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
</font></span></blockquote></div><br></div></div>