python et active directory
Bonsoir a tous.
je voudrais connaitre la façon de, une fois connecté a l'active directory (AD) avec python, extraire le schema pour savoir quel filtre appliquer. Le but etant d'extraire tous les utilisateurs.
Je ne connais pas la structure de l'AD, juste de quoi me connecter.
J'ai testé avec de nombreux champs: Name ou cn ou encore sAMAccountName
mais y'a rien a faire.
Le debut de mon script ressemble a ca:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| #!/usr/bin/python
import sys
from xml.dom.minidom import Document
import ldap
import time
import os
import popen2
dayDate=time.strftime("%Y%m%d", time.localtime())
ldap_uri = "ldap://host"
userPrincipalName = "user@host.com"
password = 'xxxxxxx'
trace_level = 2
l = ldap.initialize(ldap_uri,trace_level=trace_level)
if len(sys.argv) > 2:
searchFilter=sys.argv[1]
dfile=sys.argv[2]
else:
dfile=sys.argv[1]
searchFilter = "(&(objectCategory=person)(objectCategory=*)(objectClass=*)(Title=*)(sAMAccountName=*)(userAccountControl=*))"
l.simple_bind_s(userPrincipalName,password)
baseDN = "DC=host,DC=com"
searchScope = ldap.SCOPE_SUBTREE
retrieveAttributes = None
#searchFilter = "(objectClass=*)"
#searchFilter ="(sAMAccountName=*)"
#searchFilter = "(&(objectCategory='person')(objectClass='user'))"
#searchFilter = "(objectCategory='person')(objectClass='user')"
#searchFilter = "(objectCategory='person', objectClass='user')"
#searchFilter = "(objectCategory='person')"
doc = Document()
pFile20=doc.createElement("p-file-20")
doc.appendChild(pFile20)
ldap_result_id = l.search(baseDN, searchScope, searchFilter, retrieveAttributes)
result_set = []
while 1:
type="A"
result_type, result_data = l.result(ldap_result_id, 0)
print result_data
if (result_data == []):
print "nodata"
break
elif len(result_data[0])<2: |
D'avance merci