J'ai deja pose la question mais comme la solution na pas etais trouver je vous la repose
je suis au bord de la crise de nerf
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 !