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

Plus d'informations
il y a 6 jours 6 heures #31172 par witness57
Je précise pour mon précédent message que j'ai réessayé d'exécuter le script en enlevant ces modifications et l'export csv fonctionne.
Ça vient donc bien de ces ajouts.
 

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

Plus d'informations
il y a 9 heures 5 minutes #31186 par ericlm128
Me revoila, ceci retourne une valeur
$SAM.SubString(0, [Math]::Min(19, $SAM.length)) -replace '[^a-z A-Z 0-9]+','' -replace '[ ]',''
il faut que tu l'assigne
$SAM = $SAM.SubString(0, [Math]::Min(19, $SAM.length)) -replace '[^a-z A-Z 0-9]+','' -replace '[ ]',''

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

Plus d'informations
il y a 9 heures 3 minutes - il y a 9 heures 1 minute #31187 par ericlm128
A noter que cette réduction peut techniquement te poser des problèmes, tu peux retomber dans un cas de doublon

Il faut aussi l'ajouter à $AD_SAM une fois le nom définitif choisi et pas avant
Dernière édition: il y a 9 heures 1 minute par ericlm128.

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

Plus d'informations
il y a 8 heures 34 minutes - il y a 8 heures 31 minutes #31188 par ericlm128
Je te propose ceci (non testé)
$users = import-csv -path "C:\Users\Administrateur\Desktop\importusers.csv" -delimiter ";"
$AD_SAM = get-ADuser -filter * -SearchBase "DC=Mondomaine,DC=local" | Select-Object -ExpandProperty SamAccountName
$NewUsers = $users | ForEach-Object {
    $sn = $_.Nom -replace '[^a-z0-9]+', ''
    $givenname = $_.Prenom -replace '[^a-z0-9]+', ''
    $Classe = $_.Classe
    $identifiant = $_.identifiant
    $ou = "OU=importusers,DC=Mondomaine,DC=local"
    $description = 'GCU-ORG{$ELEVE}$' + $Classe
    $SAM = $givenname.Substring(0,1).ToLower() + $sn.ToLower()
    
    $SAM = $SAM -replace '[^a-z A-Z 0-9]+','' -replace '[ ]',''
    if ($AD_SAM -contains $SAM)
    {
        for ($i = 1 ; ; $i++)
        {
            $SAMtmp = $SAM.SubString(0, [Math]::Min(19 - $i.ToString().Length, $SAM.length)) + $i.ToString()

            if ($AD_SAM -notcontains $SAMtmp)
            {
                $SAM = $SAMtmp
                break
            }
        }
    }
    $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
    
New-ADuser -displayName $displayName -Path $ou -Description $description -SamAccountName $SAM -givenname $givenname -Surname $sn -name $displayName -UserPrincipalName $UPN -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 8 heures 31 minutes par ericlm128.

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

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