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

  • ericlm128
  • Visiteur
  • Visiteur
il y a 4 ans 11 mois - il y a 4 ans 11 mois #31151 par ericlm128
Réponse de ericlm128 sur le sujet Doublons générés lors du traitement import AD
Comme ceci en fait
$SAM = "ROBERT BERNARD JOHN @ '"
$SAM = $SAM -replace '[^a-z0-9]+', ''
$SAM
Dernière édition: il y a 4 ans 11 mois par ericlm128.

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

  • ericlm128
  • Visiteur
  • Visiteur
il y a 4 ans 11 mois #31152 par ericlm128
Réponse de ericlm128 sur le sujet Doublons générés lors du traitement import AD
Fait ceci
$SAM.SubString(0, [Math]::Min(19, $SAM.length))
 

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

  • witness57
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 4 ans 11 mois #31153 par witness57
Réponse de witness57 sur le sujet Doublons générés lors du traitement import AD

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.

  • witness57
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 4 ans 11 mois #31154 par witness57
Réponse de witness57 sur le sujet Doublons générés lors du traitement import AD

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.

  • witness57
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 4 ans 11 mois - il y a 4 ans 11 mois #31170 par witness57
Réponse de witness57 sur le sujet Doublons générés lors du traitement import AD
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 4 ans 11 mois par witness57.

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

  • witness57
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 4 ans 11 mois #31171 par witness57
Réponse de witness57 sur le sujet Doublons générés lors du traitement import AD
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.043 secondes
Propulsé par Kunena