Question
Fusionner des comptes LDAP
- david
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 59
- Remerciements reçus 0
il y a 17 ans 3 mois #3466
par david
Fusionner des comptes LDAP a été créé par david
Bonjour,
Je dois écrire un script pour fusion des comptes Active Directory qui se trouvent à deux endroits différents.Et je ne vois pas trop comment attaquer le problème, les différentes étapes pour fusionner.Pouvez-vous m'aider ? Merci
Je dois écrire un script pour fusion des comptes Active Directory qui se trouvent à deux endroits différents.Et je ne vois pas trop comment attaquer le problème, les différentes étapes pour fusionner.Pouvez-vous m'aider ? Merci
Connexion ou Créer un compte pour participer à la conversation.
- david
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 59
- Remerciements reçus 0
il y a 17 ans 3 mois #3515
par david
Réponse de david sur le sujet Re:Fusionner des comptes LDAP
Bonjour,
Je cherche à fusionner deux conteneurs.
Pour chaque objet d'un conteneur1, je récupère le champ puis traite la donnée que je récupère dans une variable1.
Idem pour le conteneur2, je récupère le champ puis traite la donnée que je récupère dans une variable2.
Après je compare variable 1 et variable2 qui sont deux chaines, si elles sont égales, j'insere dans le conteneur 3.
Plusieurs questions : quelle est la méthode pour tester l'égalité de deux variables de type chaine? Quelle est la méthode pour insérer dans un conteneur ? Et comment je crée ce 3ème conteneur?
Et si les deux chaines ne sont pas égales, je ne fais rien????
Merci pour votre aide.
Je cherche à fusionner deux conteneurs.
Pour chaque objet d'un conteneur1, je récupère le champ puis traite la donnée que je récupère dans une variable1.
Idem pour le conteneur2, je récupère le champ puis traite la donnée que je récupère dans une variable2.
Après je compare variable 1 et variable2 qui sont deux chaines, si elles sont égales, j'insere dans le conteneur 3.
Plusieurs questions : quelle est la méthode pour tester l'égalité de deux variables de type chaine? Quelle est la méthode pour insérer dans un conteneur ? Et comment je crée ce 3ème conteneur?
Et si les deux chaines ne sont pas égales, je ne fais rien????
Merci pour votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- david
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 59
- Remerciements reçus 0
il y a 17 ans 3 mois #3516
par david
Réponse de david sur le sujet Re:Fusionner des comptes LDAP
Je poste mon code pour info, j'ai limpression qui boucle à l'infini
$ldapQuery = \"(&(objectCategory=person)(objectClass=user))\"
$de = [ADSI]\"LDAP://*/ou=*,OU=*,dc=*,dc=*\"
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()
$de1 = [ADSI]\"LDAP://*/ou=*,OU=*,dc=*dc=*\"
$ads1 = new-object system.directoryservices.directorysearcher -argumentlist $de1,$ldapQuery
$complist1 = $ads1.findall()
foreach ($i in $complist) {
$i.Properties.cn
$User = $i.GetDirectoryEntry()
$EmpID=$user.employeeID
$num=$user.samAccountName
$num=$num -replace('^.', '1')
Write-Host \"$EmpID\"
write-Host \"$num\"
foreach ($j in $complist1) {
$j.Properties.cn
$numiut=([string]$j.properties.description).split(' ')
$num1=$numiut[3]
write-Host \"$num1\"
#comparaison des deux variables $num et $num1
if ($num -eq $num1)
{ write-Host (\"les chaines sont égales\")}
}
}
$ldapQuery = \"(&(objectCategory=person)(objectClass=user))\"
$de = [ADSI]\"LDAP://*/ou=*,OU=*,dc=*,dc=*\"
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()
$de1 = [ADSI]\"LDAP://*/ou=*,OU=*,dc=*dc=*\"
$ads1 = new-object system.directoryservices.directorysearcher -argumentlist $de1,$ldapQuery
$complist1 = $ads1.findall()
foreach ($i in $complist) {
$i.Properties.cn
$User = $i.GetDirectoryEntry()
$EmpID=$user.employeeID
$num=$user.samAccountName
$num=$num -replace('^.', '1')
Write-Host \"$EmpID\"
write-Host \"$num\"
foreach ($j in $complist1) {
$j.Properties.cn
$numiut=([string]$j.properties.description).split(' ')
$num1=$numiut[3]
write-Host \"$num1\"
#comparaison des deux variables $num et $num1
if ($num -eq $num1)
{ write-Host (\"les chaines sont égales\")}
}
}
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 3 mois #3521
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Fusionner des comptes LDAP
dav écrit:
nb d'itération= $complist.Count * $complist1.Count
La seconde boucle parcourt à chaque fois l'intégralité de la collection c'est le comportement attendu ?
Pour accélérer la recherche tu peux peut-être utiliser la méthode IndexOf ou Contains de la classe SearchResultCollection.
En suivant les conseils de MSDN, en fin de traitement, il faut libérer manuellement les ressources de la collection :
msdn.microsoft.com/fr-fr/library/system.....findall(VS.80).aspx
[code:1]
$complist.Dispose()
$complist1.Dispose()
[/code:1]
A première vue je dirais non, mais il doit prendre un certain temps,Je poste mon code pour info, j'ai limpression qui boucle à l'infini
nb d'itération= $complist.Count * $complist1.Count
La seconde boucle parcourt à chaque fois l'intégralité de la collection c'est le comportement attendu ?
Pour accélérer la recherche tu peux peut-être utiliser la méthode IndexOf ou Contains de la classe SearchResultCollection.
En suivant les conseils de MSDN, en fin de traitement, il faut libérer manuellement les ressources de la collection :
msdn.microsoft.com/fr-fr/library/system.....findall(VS.80).aspx
[code:1]
$complist.Dispose()
$complist1.Dispose()
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- david
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 59
- Remerciements reçus 0
il y a 17 ans 3 mois #3522
par david
Réponse de david sur le sujet Re:Fusionner des comptes LDAP
Le but est de récupérer dans chacun des deux groupes pour chaque objet un attribut qu'on modifiera et de le stocker dans une variable.
Donc obligation de parcourir chacun des deux groupes entièrement une fois?
Puis de reparcourir un groupe et de tester pour chaque objet de l'autre goupe. J'ai du mal à y voir autrment
Puis comparé pour chaque objet les deux variables récupérées et si elles sont égales faire une insertion dans un 3eme conteneur. Je sais pas si j'ai été clair.
Donc obligation de parcourir chacun des deux groupes entièrement une fois?
Puis de reparcourir un groupe et de tester pour chaque objet de l'autre goupe. J'ai du mal à y voir autrment
Puis comparé pour chaque objet les deux variables récupérées et si elles sont égales faire une insertion dans un 3eme conteneur. Je sais pas si j'ai été clair.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 3 mois #3525
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Fusionner des comptes LDAP
dav écrit:

Mais je vais prendre le temps de relire tes précédents posts et voir si je peux t'aider.<br><br>Message édité par: Laurent Dardenne, à: 19/12/08 16:34
Pour moi pas vraimentJe sais pas si j'ai été clair.
Mais je vais prendre le temps de relire tes précédents posts et voir si je peux t'aider.<br><br>Message édité par: Laurent Dardenne, à: 19/12/08 16:34
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.102 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Fusionner des comptes LDAP