Question
Doublons générés lors du traitement import AD
- witness
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 120
- Remerciements reçus 1
il y a 2 ans 4 mois #31172
par witness
Réponse de witness sur le sujet Doublons générés lors du traitement import AD
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.
Ça vient donc bien de ces ajouts.
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 179
- Remerciements reçus 37
il y a 2 ans 4 mois #31186
par ericlm128
Réponse de ericlm128 sur le sujet Doublons générés lors du traitement import AD
Me revoila, ceci retourne une valeuril faut que tu l'assigne
$SAM.SubString(0, [Math]::Min(19, $SAM.length)) -replace '[^a-z A-Z 0-9]+','' -replace '[ ]',''
$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.
- ericlm128
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 179
- Remerciements reçus 37
il y a 2 ans 4 mois - il y a 2 ans 4 mois #31187
par ericlm128
Réponse de ericlm128 sur le sujet Doublons générés lors du traitement import AD
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
Il faut aussi l'ajouter à $AD_SAM une fois le nom définitif choisi et pas avant
Dernière édition: il y a 2 ans 4 mois par ericlm128.
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 179
- Remerciements reçus 37
il y a 2 ans 4 mois - il y a 2 ans 4 mois #31188
par ericlm128
Réponse de ericlm128 sur le sujet Doublons générés lors du traitement import AD
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 2 ans 4 mois par ericlm128.
Les utilisateur(s) suivant ont remercié: witness
Connexion ou Créer un compte pour participer à la conversation.
- witness
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 120
- Remerciements reçus 1
il y a 2 ans 4 mois #31195
par witness
Réponse de witness sur le sujet Doublons générés lors du traitement import AD
Hello Eric,
Je vais tester ça et te dirai si je rencontre une difficulté.
Merci
Je vais tester ça et te dirai si je rencontre une difficulté.
Merci
Connexion ou Créer un compte pour participer à la conversation.
- witness
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 120
- Remerciements reçus 1
il y a 2 ans 4 mois #31204
par witness
Réponse de witness sur le sujet Doublons générés lors du traitement import AD
Hello,
Alors j'ai testé la version précédente, celui où j'ai oublié d'assigner la variable, et ça semble fonctionner.
Je vais aussi tester celui qui tu m'as proposé ci-dessus.
Par contre je me rends compte qu'avec ce script, si j'ai des accents dans les noms ou prénoms, ils vont tout simplement disparaitre et il va donc manquer des lettres du coup.
Pour le login c'est pas gênant car il se base justement sur le nom et prénom, on ne devrait donc pas être embêté.
Ne vaudrait-il pas mieux, au lieu de supprimer les caractères avec le regex, faire un remplacement ?
Autrement dit, si par exemple dans un prénom j'ai un accent, comme pour "Thimoté", dire au script qu'il remplace "é" par e.
Bien sûr il faudrait faire ça pour tous les possibles cas qui pourraient se présenter mais il n'y en pas beaucoup, dans les prénoms on retrouve toujours les mêmes, à savoir: é è ä ê î ï
Alors j'ai testé la version précédente, celui où j'ai oublié d'assigner la variable, et ça semble fonctionner.
Je vais aussi tester celui qui tu m'as proposé ci-dessus.
Par contre je me rends compte qu'avec ce script, si j'ai des accents dans les noms ou prénoms, ils vont tout simplement disparaitre et il va donc manquer des lettres du coup.
Pour le login c'est pas gênant car il se base justement sur le nom et prénom, on ne devrait donc pas être embêté.
Ne vaudrait-il pas mieux, au lieu de supprimer les caractères avec le regex, faire un remplacement ?
Autrement dit, si par exemple dans un prénom j'ai un accent, comme pour "Thimoté", dire au script qu'il remplace "é" par e.
Bien sûr il faudrait faire ça pour tous les possibles cas qui pourraient se présenter mais il n'y en pas beaucoup, dans les prénoms on retrouve toujours les mêmes, à savoir: é è ä ê î ï
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.121 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Doublons générés lors du traitement import AD