Question Doublons générés lors du traitement import AD

Plus d'informations
il y a 2 ans 8 mois #31091 par Laurent Dardenne
D'où l'expression "C'est plus facile à dire qu'à faire." :-)

On doit connaitre les doublons existant avant le traitement, puis les décomposer pour récupèrer le nombre le plus élevé de chaque nom de compte.
Le reste est dû à l'usage de trace et du cache.

Si au démarrage de ton traitement tu es assuré de ne pas avoir de doublons existant dans l'AD cette partie peut être supprimé. Dans ce cas l'ajout d'un nouvel élément dans le cache sera associé à un compteur valant zéro.

Ceci dit ce code peut ne pas correspondre à ce que tu dois faire, c'est juste une piste. En tout cas il ne répond pas à tous les cas, faut le tester.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 2 ans 8 mois #31098 par Philippe
boujour à tous

j'ai une solution un petit peu plus légère !

ce code te permet d'afficher la liste des comptes commence par le login donner :
$login = "riri"
$loginrecherche = $login + "*"
get-aduser -Filter {SamAccountName -like $loginrecherche }

si tu compte le résultat et que le chiffre obtenue est rajouter au login, tu a ton nouveau login !!
$SAM= "riri" # test avec riri
$loginrecherche = $SAM + "*"
$nbloginidentique = (get-aduser -Filter {SamAccountName -like $loginrecherche}).count

if ($nbloginidentique -gt 0) {
    $SAM = $SAM + $nbloginidentique
}
$SAM

a mettre juste avant le new-ADUser

bonne suite avec powershell et l'AD

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 2 ans 8 mois #31099 par Laurent Dardenne
Salut,
oui c'est une solution plus simple.
Ceci dit, pour 2500 comptes il faut peut être éviter les appels récurrent sur l'AD ( même s'il est là pour ça). A mon avis et si j'ai bien compris, une table des 300 comptes existant et regroupés par nom reste utile, ainsi que le cache je pense.

Reste le cas de 'Riri','Riri1' et 'Ririton','Ririton2' (puisque l'on ne connait pas les cas de nom dupliqué), le filtre AD doit être plus précis
Mais sans spec précise on ne sait pas laquelle est la plus appropriée ...

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 2 ans 8 mois #31107 par ericlm128
Bonjour

La solution de Philippe semble poser des problèmes de logique.

Exemple d'utilisateur :
 Christophe
 Christine
 Chris

Le "Chris" sera nommé Chris3 ? (dans l'idée)

Pour ma part je récupèrerai la totalité des noms de compte dans l'AD pour le traitement et savoir ce qui doit réellement être créer en fonction de l'existant et des entrants.

Donc :
1 interrogation AD
1 petit traitement (en mémoire) pour définir les noms qui doivent être inscrit

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 2 ans 8 mois #31108 par ericlm128
Voici un exemple simple de boucle pouvant répondre au besoin
# Nom dans l'AD
$a = "a", "b", "c", "d1", "e"

# Nom des entrants
$b = "a", "c", "c", "d", "f"

$projection = $a
$c = $b | ForEach-Object {
    $name = $_
    if ($projection -contains $name)
    {
        for ($i = 1 ; $projection -contains ($name + $i) ; $i++)
        {
        }
        $name = $name + $i
    }

    $projection += $name
    $name
}

# Nom des entrants modifiés
$c

<# Affiche
a1
c1
c2
d
f
#>

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 2 ans 8 mois #31114 par witness
Bonjour,

Merci à vous tous de contribuer à la résolution de mon problème.

Je vais tester tout ça et revenir vers vous après avoir retravaillé mon script globalement.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.105 secondes
Propulsé par Kunena