[python-win32] Problem with OLE error 0x80041002

Gowtham narisipalli at gmail.com
Fri Dec 11 05:19:19 CET 2009


Hi All,

I have a python script that retrieves the user profile path from the
registry using wmi. I am doing this way as win32net.NetUserGetInfo could not
somehow find the domain user.  Here the code snippet-

  def GetProfilePath(username):
    pythoncom.CoInitialize()
    try:
      reg = wmi.WMI(find_classes=False, namespace='default').StdRegProv
      try:
        unused_result, profilepath = reg.GetExpandedStringValue(
            hDefKey=_winreg.HKEY_LOCAL_MACHINE,
            sSubKeyName=('%s\\%s' % (ProfileSettings.PROFILES_KEY,
                                     ProfileSettings.ObtainSid(username))),
            sValueName='ProfileImagePath')
      except WindowsError:
        raise NoProfileInfoError(
            'The user %s has no Profile Path defined in the registry.' %
username)
    finally:
      pythoncom.CoUninitialize()
    return profilepath

I am using pythoncom as this request would be able to run from a thread
instead from the main thread.

This works fine on most of the XP machines but some XP machines throw up
this exception-

 File "wmi.pyc", line 1190, in connect
 File "wmi.pyc", line 189, in handle_com_error
x_wmi: -0x7ffbeffe - OLE error 0x80041002

I see that 0x80041002 is Object not found error but why is wmi not being
able to find the object and what could be an alternative?

Any tips, appreciated.
Gowtham N
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20091210/08d895d6/attachment.htm>


More information about the python-win32 mailing list