| 18.6.1 ProblemYou want to programmatically access Active Directory using Python. 18.6.2 SolutionAs with Perl, you have two options for programming Active Directory with Python: the native LDAP-based approach, and a COM interface, which allows you to use ADSI. The LDAP module can be downloaded from http://python-ldap.sourceforge.net/. The COM interface is part of the standard ActivePython install available from ActiveState (http://www.activestate.com/ActivePython/). The following Python code sample prints out the RootDSE of DC1 using the LDAP interface: import ldap try:    l = ldap.open("dc1") except ldap.LDAPError, e:    print e baseDN = "" searchScope = ldap.SCOPE_BASE retrieveAttributes = None  searchFilter = "objectclass=*" try:    ldap_result_id = l.search(baseDN, searchScope, searchFilter,                               retrieveAttributes)    result_type, result_data = l.result(ldap_result_id, 0)    if result_type == ldap.RES_SEARCH_ENTRY:       print result_data except ldap.LDAPError, e:    print eThis next code sample uses the win32com.client module to access the RootDSE with ADSI: import win32com.client objRootDSE = win32com.client.GetObject('LDAP://RootDSE') objRootDSE.GetInfo( ) for i in range( 0, objRootDSE.PropertyCount - 1):    prop = objRootDSE.Item(i)    print prop.Name    for val in prop.Values:       print "  ",val.CaseIgnoreString18.6.3 DiscussionMore information is available on Python by going to the Python home page: http://www.python.org/. | 
