Getting sub-objects from ADSI

Michael P. Nugent mpnugent at ra.rockwell.com
Fri Jul 25 05:10:26 EDT 2003


logistix at cathoderaymission.net (logistix at cathoderaymission.net) wrote in message news:<3c91a864.0307231744.44a0adbb at posting.google.com>...
> mpnugent at ra.rockwell.com (Michael P. Nugent) wrote in message news:<d89570b3.0307231025.69b573e5 at posting.google.com>...
> > How do I get the underlying values from Win::OLE=Hash(0x...) type
> > objects? I can do it in Perl, but not in Python.
> > 
> > For instance, I get
> > 
> > CN=Fred
> > <COMObject <unknown>>
> > <COMObject <unknown>>
> > 
> > when running
> > 
> > #! python
> > 
> > import pythoncom
> > from win32com.client import GetObject
> > 
> > UserPath = "LDAP://CN=Fred,OU=Two,OU=One,DC=nw,DC=home,DC=here,DC=com"
> > 
> > ldap = GetObject(Userpath)
> > 
> > print ldap.Name
> > print ldap.Groups()
> > print ldap.LastLogoff
> > 
> > I know that Groups is of the type <bound method CDispatch.Groups of
> > <COMObject ...>>, but that knowledge does not help me much.  I have
> > fiddled a bit with GetInfo and Dispatch, but it doesn't change the
> > results.
> 
> Try:
> 
> for group in ldap.Groups():
>     print group.Name #or whatever you really want to do


Thank you for that. I had tried that, but must have mistyped
something. However, that is only part of the answer I need: what about
LastLogoff? I don't know even what type of OLE/COM object it is
supposed to be, so I don't know how to intuitively access it.

For instance, given:

      print ldap.LastLogin
      print ldap.LastLogoff

I get:

<PyTime:7/22/2003 3:37:46 PM>
<COMObject <unknown>>

Thomas Eck in ADSI Scripting Appendix B says that that these should be
the same types, so maybe the Python libs are hosed.

P.S. I don't like the naming inconsistancy-- logon <=> logoff, login
<=> logout-- either.




More information about the Python-list mailing list