voisi mon script
dim a a=0 Set fsobj = CreateObject("Scripting.FileSystemObject") Set tf = fsobj.CreateTextFile("C:\Documents and Settings\All Users\Bureau\MajSalarie.ldif", True)'crée le fichier Const ADS_SCOPE_SUBTREE = 2 Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCommand.ActiveConnection = objConnection objCommand.CommandText = _ "Select displayName, department , mail ,distinguishedName, sn, title, telephoneNumber,otherTelephone,othertelephone, l from " & _ "'LDAP://DC=cagri76,DC=int' where objectClass='person'order by sn"
objCommand.Properties("Page Size") = 1000 objCommand.Properties("Timeout") = 30 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE Set objRecordSet = objCommand.Execute objRecordSet.MoveFirst Do Until objRecordSet.EOF If (isnull(objRecordSet.Fields("sn").Value)) and (isnull(objRecordSet.Fields("mail").Value)) or(isnull(objRecordSet.Fields("l").Value)) then objRecordSet.MoveNext else a=a+1 tf.write("DN:CN=")&(objRecordSet.Fields("sn").Value &(",OU=personnes,OU=CA76,OU=cda,DC=chambagri") &chr(13)& chr(10))& _ ("changetype: modify")&chr(13)& chr(10) & _ ("objectclass: personne")&chr(13)& chr(10) & _ ("objectclass: personneCA")&chr(13)& chr(10) & _ ("objectclass: salarie")&chr(13)& chr(10) & _ ("cn:")&(objRecordSet.Fields("displayName").Value &chr(13)& chr(10)) & _ ("sn:")&(objRecordSet.Fields("sn").Value &chr(13)& chr(10)) & _ ("metier:")&(objRecordSet.Fields("title").Value &chr(13)& chr(10)) & _ ("postetel:")&(objRecordSet.Fields("telephoneNumber").Value &chr(13)& chr(10))& _ ("site:")&(objRecordSet.Fields("l").Value &chr(13)& chr(10)) & _ ("service:CN=")&(objRecordSet.Fields("department").Value &(",OU=services,OU=Groupes,OU=CA76,OU=cda,DC=chambagri") &chr(13)& chr(10)) & _ ("Mail:")&(objRecordSet.Fields("mail").Value &chr(13)& chr(10)) &chr(13)& chr(10)
'c'est a partir de la que ca ce complique je fait un eco pour test mais a terme il sera rediriger ver le ldif comme les autre
Set userDN = GetObject("LDAP://" & objRecordSet.Fields("distinguishedName").Value) if not (isnull(userDN.GetEx("othertelephone"))) then colothertelephone = userDN.GetEx("othertelephone") wscript.echo(objRecordSet.Fields("displayName").Value) For each strGroupDN in colothertelephone 'tf.write(strGroupDN &chr(13) &chr(10)) wscript.echo(strGroupDN &chr(13) &chr(10)) Exit For Next else objRecordSet.MoveNext end if objRecordSet.MoveNext end if loop wscript.echo("Operation Terminer"&chr(13)& chr(10) &(a)&Chr(32)&("Comptes")) tf.close
Ce script a pour but d'extraire des objet de l'annuaire ldap de L'active directory ver un serveur openldap en faisant une concordans de champ avec des objet differant C'est a dire que les objet de l'AD on un nom different de celui de l'open ldap mais il coresponde au meme valeur. Mon probleme et pour l'objet "OtheTelephone" cette objet peut avoir plusiaur valeurs comme aucune donc pour les recuperer je pas par "GetEx" puis une boucle mais le probleme et la si le champs et vide l'objet n'existe pas car il est facultatif donc quand l'appel il spot le script et me renvoie une erreur.... je suis debutant enVBscript et je ne vois vraiment pas la solution en tous cas merci de m'aider !
|