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

Plus d'informations
il y a 2 ans 8 mois - il y a 2 ans 8 mois #31151 par ericlm128
Comme ceci en fait
$SAM = "ROBERT BERNARD JOHN @ '"
$SAM = $SAM -replace '[^a-z0-9]+', ''
$SAM
Dernière édition: il y a 2 ans 8 mois par ericlm128.

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

Plus d'informations
il y a 2 ans 8 mois #31152 par ericlm128
Fait ceci
$SAM.SubString(0, [Math]::Min(19, $SAM.length))
 
Les utilisateur(s) suivant ont remercié: witness

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

Plus d'informations
il y a 2 ans 8 mois #31153 par witness

Comme ceci en fait
$SAM = "ROBERT BERNARD JOHN @ '"
$SAM = $SAM -replace '[^a-z0-9]+', ''
$SAM

Ça enlève aussi les espace ?
Dans mon post d'avant j'ai intégré deux -replace parce que le premier ne prenait pas les espace en compte.

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

Plus d'informations
il y a 2 ans 8 mois #31154 par witness

Fait ceci
$SAM.SubString(0, [Math]::Min(19, $SAM.length))

 

Je vais regarder ça de plus près pour savoir un peu comment ça marche et tester

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

Plus d'informations
il y a 2 ans 7 mois - il y a 2 ans 7 mois #31170 par witness
Hello,

$SAM.SubString(0, [Math]::Min(19, $SAM.length)) -replace '[^a-z A-Z 0-9]+','' -replace '[ ]',''

Ça réduit à 19 caractères puis ça enlève tous les caractères dont les espaces sauf chiffres et lettres
 
Dernière édition: il y a 2 ans 7 mois par witness.

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

Plus d'informations
il y a 2 ans 7 mois #31171 par witness
Je viens de voir qu'en exécutant le script après avoir modifié ces deux lignes ci-dessous en ajoutant -replace '[^a-z0-9]+', ''
 $sn = $_.Nom -replace '[^a-z0-9]+', ''
 $givenname = $_.Prenom -replace '[^a-z0-9]+', ''

et en ayant ajouté celle-ci
$SAM.SubString(0, [Math]::Min(19, $SAM.length)) -replace '[^a-z A-Z 0-9]+','' -replace '[ ]',''

Mon export csv ne fonctionne plus, au lieu des données en sortie aves les champs qui vont bien, mon export contient la propriété Length avec sa valeur.

Voici le script:
$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()
    
    if ($AD_SAM -contains $SAM)
    {
        for ($i = 1 ; $AD_SAM -contains ($SAM + $i) ; $i++)
        {
        }
        $SAM = $SAM + $i
    }
    $AD_SAM += $SAM
    
    $SAM.SubString(0, [Math]::Min(19, $SAM.length)) -replace '[^a-z A-Z 0-9]+','' -replace '[ ]',''

    $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 ";"

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

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