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

Plus d'informations
il y a 1 an 2 mois - il y a 1 an 2 mois #31124 par witness57
Alors j'ai revérifié et tout est bon dans mon fichier d'import.

J'ai donc comparé les noms en erreur lors de l'import avec les noms de mon fichier d'import et toutes les erreurs en rapport avec l'UPN correspondent bien à des noms identiques et à des prénoms commençant par la même lettre.

"Dupond Alain" et "Dupond Alicia" ça ne passe pas au niveau de l'UPN

Ce qui s'explique puisque $SAM dans le script est composé de la première lettre du prénom + le nom complet.
Dernière édition: il y a 1 an 2 mois par witness57.

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

Plus d'informations
il y a 1 an 2 mois #31125 par ericlm128
Il devrait bien s'incrémenter, peut tu faire un fichier d'import simple avec 2, 3 nom a problème et ajouter un write-host $SAM et write-host $UPN avec le New-ADuser afin de vérifier ?
Tu peux aussi vérifier que $AD_SAM contient bien tous les noms des compte SAM de l'ad ?

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

Plus d'informations
il y a 1 an 2 mois - il y a 1 an 2 mois #31127 par witness57
J'ai fait un autre test.
Dans le script j'ai enlevé le paramètre pour générer l'UPN afin d'éviter ces erreurs là et ne conserver que les erreurs liées à la création de du $SAM.
Mon fichier d'import contient ces données pour test:

Nom;Prenom;Classe;Identifiant
DUPOND;Assia;309;3743
DUPOND;Ambrine;610;7855
LOUIS;Virgile;102;6082
LOUIS;Victor;102;6078
PETIT;Lisa;104;4890
PETIT;Lou;502;4886

On a donc des paires de noms similaires et un prénom commençant par la même lettre.
Voici les erreurs:



New-ADuser : Le compte spécifié existe déjà
Au caractère Ligne:37 : 1
+ New-ADuser -displayName $displayName -Path $ou -Description $descript ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (CN=LOUIS Victor...,DC=local:String) [New-ADUser], ADIdentityAlreadyExistsException
    + FullyQualifiedErrorId : ActiveDirectoryServer:1316,Microsoft.ActiveDirectory.Management.Commands.NewADUser

New-ADuser : Le compte spécifié existe déjà
Au caractère Ligne:37 : 1
+ New-ADuser -displayName $displayName -Path $ou -Description $descript ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (CN=PETIT Lou [4...,DC=local:String) [New-ADUser], ADIdentityAlreadyExistsException
    + FullyQualifiedErrorId : ActiveDirectoryServer:1316,Microsoft.ActiveDirectory.Management.Commands.NewADUser


Du coup j'ai 4 comptes sur les 6 qui sont créés.

Bizarrement pour DUPOND il a bien créé les deux comptes

adupond
adupond1
Dernière édition: il y a 1 an 2 mois par witness57.

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

Plus d'informations
il y a 1 an 2 mois - il y a 1 an 2 mois #31128 par witness57
Je remets le script que j'ai appliqué :

$users = import-csv -path "C:\Users\Administrateur\Desktop\importusers.csv" -delimiter ";"

$NewUsers = $users | ForEach-Object {
    $sn = $_.Nom
    $givenname = $_.Prenom
    $Classe = $_.Classe
    $identifiant = $_.identifiant
    $ou = "OU=importusers,DC=Mondomaine,DC=local"
    $description = 'GCU-ORG{$ELEVE}$' + $Classe
    $SAM = $givenname.Substring(0,1).ToLower() + $sn.ToLower()

    
    if ($AD_SAM -contains $SAM)
    {
        for ($i = 1 ; $AD_SAM -contains ($SAM + $i) ; $i++)
        {
        }
        $SAM = $SAM + $i
    }
    $AD_SAM += $SAM     


    $CN = $sn + " " + $givenname + " " + "[$identifiant]"
    $displayName = $CN
    $UPN = $SAM + "@Mondomaine.local"
    $userAccountControl = 66050
    $CannotChangePassword = 1
    $HomeDrive = "U"
    $HomeDirectory = "\\test\test"
    $ProfilePath = "C:\users"
    $ScriptLogon = "test"
    $Password = '{0}{1}' -f (get-random -Minimum 1000000 -Maximum 9999999), [char](get-random -Minimum 65 -Maximum 90)
    $Password = $Password -replace '0',(Get-Random -Minimum 1 -Maximum 9) -replace 'O',[char](get-Random -Minimum 65 -Maximum 78)
    $Secure_String_pwd = ConvertTo-SecureString $Password -AsPlainText -Force
    $Enabled = 1
    $Logins = Get-ADUser -SearchBase 'OU=importusers,DC=Mondomaine,DC=local' -filter * | Select-Object  SamAccountName
    

New-ADuser -displayName $displayName -Path $ou -Description $description -SamAccountName $SAM -givenname $givenname -Surname $sn -name $displayName -PasswordNeverExpires $userAccountControl -CannotChangePassword $CannotChangePassword -HomeDrive $HomeDrive -HomeDirectory $HomeDirectory -ProfilePath $ProfilePath -ScriptPath $ScriptLogon -Enabled $Enabled -Accountpassword $Secure_String_pwd


[PSCustomObject]@{
    Nom = $sn
    Prenom = $givenname
    OU = $ou
    Description= $description
    Login = $SAM
    Lettre_lecteur = $HomeDrive
    Dossier_personnel = $HomeDirectory
    Chemin_profil = $ProfilePath
    ScriptLogon = $ScriptLogon
    Mot_de_passe = $Password
    }

}

$NewUsers | Export-Csv -path "C:\Users\Administrateur\Desktop\export.csv" -Append -NoTypeInformation -Delimiter ";"
 
Dernière édition: il y a 1 an 2 mois par witness57.

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

Plus d'informations
il y a 1 an 2 mois - il y a 1 an 2 mois #31129 par witness57
Fichier d'export

"Nom";"Prenom";"OU";"Description";"Login";"Lettre_lecteur";"Dossier_personnel";"Chemin_profil";"ScriptLogon";"Mot_de_passe"
"DUPOND";"Assia";"OU=importusers,DC=Mondomaine,DC=local";"GCU-ORG{$ELEVE}$309";"adupond";"U";"\\test\test";"C:\users";"test";"3924728L"
"DUPOND";"Ambrine";"OU=importusers,DC=Mondomaine,DC=local";"GCU-ORG{$ELEVE}$610";"adupond1";"U";"\\test\test";"C:\users";"test";"1665261B"
"LOUIS";"Virgile";"OU=importusers,DC=Mondomaine,DC=local";"GCU-ORG{$ELEVE}$102";"vlouis";"U";"\\test\test";"C:\users";"test";"7836293S"
"LOUIS";"Victor";"OU=importusers,DC=Mondomaine,DC=local";"GCU-ORG{$ELEVE}$102";"vlouis";"U";"\\test\test";"C:\users";"test";"4146413K"
"PETIT";"Lisa";"OU=importusers,DC=Mondomaine,DC=local";"GCU-ORG{$ELEVE}$104";"lpetit";"U";"\\test\test";"C:\users";"test";"3626739K"
"PETIT";"Lou";"OU=importusers,DC=Mondomaine,DC=local";"GCU-ORG{$ELEVE}$502";"lpetit";"U";"\\test\test";"C:\users";"test";"6113429P"
Dernière édition: il y a 1 an 2 mois par witness57.

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

Plus d'informations
il y a 1 an 2 mois #31130 par ericlm128
Avec le même csv voici mon code de test qui considère un AD vide, $AD_SAM = @(), pour le moment puisque le problème semble déjà se produire avec les entrants
$users = import-csv -path ".\importusers.csv" -delimiter ";"
$AD_SAM = @()

$NewUsers = $users | ForEach-Object {
    $sn = $_.Nom
    $givenname = $_.Prenom
    $Classe = $_.Classe
    $identifiant = $_.identifiant
    $ou = "OU=importusers,DC=Mondomaine,DC=local"
    $description = 'GCU-ORG{$ELEVE}$' + $Classe
    $SAM = $givenname.Substring(0,1).ToLower() + $sn.ToLower()

    
    if ($AD_SAM -contains $SAM)
    {
        for ($i = 1 ; $AD_SAM -contains ($SAM + $i) ; $i++)
        {
        }
        $SAM = $SAM + $i
    }
    $AD_SAM += $SAM     

    $CN = $sn + " " + $givenname + " " + "[$identifiant]"
    $displayName = $CN
    $UPN = $SAM + "@Mondomaine.local"
    $userAccountControl = 66050
    $CannotChangePassword = 1
    $HomeDrive = "U"
    $HomeDirectory = "\\test\test"
    $ProfilePath = "C:\users"
    $ScriptLogon = "test"
    $Password = '{0}{1}' -f (get-random -Minimum 1000000 -Maximum 9999999), [char](get-random -Minimum 65 -Maximum 90)
    $Password = $Password -replace '0',(Get-Random -Minimum 1 -Maximum 9) -replace 'O',[char](get-Random -Minimum 65 -Maximum 78)
    $Secure_String_pwd = ConvertTo-SecureString $Password -AsPlainText -Force
    $Enabled = 1
    #$Logins = Get-ADUser -SearchBase 'OU=importusers,DC=Mondomaine,DC=local' -filter * | Select-Object  SamAccountName
    

#New-ADuser -displayName $displayName -Path $ou -Description $description -SamAccountName $SAM -givenname $givenname -Surname $sn -name $displayName -PasswordNeverExpires $userAccountControl -CannotChangePassword $CannotChangePassword -HomeDrive $HomeDrive -HomeDirectory $HomeDirectory -ProfilePath $ProfilePath -ScriptPath $ScriptLogon -Enabled $Enabled -Accountpassword $Secure_String_pwd


[PSCustomObject]@{
    Nom = $sn
    Prenom = $givenname
    OU = $ou
    Description= $description
    Login = $SAM
    Lettre_lecteur = $HomeDrive
    Dossier_personnel = $HomeDirectory
    Chemin_profil = $ProfilePath
    ScriptLogon = $ScriptLogon
    Mot_de_passe = $Password
    }

}

$NewUsers.Login
# | Export-Csv -path "C:\Users\Administrateur\Desktop\export.csv" -Append -NoTypeInformation -Delimiter ";"

Résultat :
adupond
adupond1
vlouis
vlouis1
lpetit
lpetit1
 

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

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