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 2 mois - il y a 2 ans 2 mois #31137
par witness
Réponse de witness sur le sujet Doublons générés lors du traitement import AD
Alors j'ai testé un import avec 1900 comptes et les erreurs que j'ai eu ce sont des erreurs de compte qui existent déjà dans une autre OU ou bien des erreurs de nom incorrect.
New-ADuser : Le compte spécifié existe déjà
New-ADuser : Le nom fourni n’est pas un nom de compte formé correctement
Pour les erreurs de nom incorrect c'est normal car il y a des espace ou ils sont trop longs ou ce sont des noms composés
Pour les erreurs de comptes existants, il est vrai que les quelques comptes concernés trouvent le même nom et la même première lettre de prénom dans une autre OU (Je fais mes tests dans un AD en exploitation mais qui ne contient qu'une cinquantaine de comptes).
J'ai lancé avec ce script:
New-ADuser : Le compte spécifié existe déjà
New-ADuser : Le nom fourni n’est pas un nom de compte formé correctement
Pour les erreurs de nom incorrect c'est normal car il y a des espace ou ils sont trop longs ou ce sont des noms composés
Pour les erreurs de comptes existants, il est vrai que les quelques comptes concernés trouvent le même nom et la même première lettre de prénom dans une autre OU (Je fais mes tests dans un AD en exploitation mais qui ne contient qu'une cinquantaine de comptes).
J'ai lancé avec ce script:
$users = import-csv -path "C:\Users\Administrateur\Desktop\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
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 2 ans 2 mois par 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 2 mois - il y a 2 ans 2 mois #31138
par witness
Ben le message d'erreur qui dit que les comptes existent déjà.
Je récapitule pour que ce soit plus clair.
Lorsque je lance mon script avec les 6 comptes de tests suivants:
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
sans mettre cette ligne de code en haut du script : $AD_SAM = @()
J'ai le message d'erreur comme quoi les comptes existent déjà et il ne me crée que les 3 comptes, les premiers de la paire à chaque fois.
Par contre, si je mets cette ligne de code, il me crée bien les 6 comptes sans aucun message d'erreur, j'ai testé 2 fois l'import avec cette ligne de code.
Pourtant, dans le premier cas comme dans le deuxième, ces comptes ont bien été supprimés préalablement et le script est lancé dans les mêmes conditions.
Réponse de witness sur le sujet Doublons générés lors du traitement import AD
witness57
Quelle message d'erreur ? J'ai loupé un post ?
Ben le message d'erreur qui dit que les comptes existent déjà.
Je récapitule pour que ce soit plus clair.
Lorsque je lance mon script avec les 6 comptes de tests suivants:
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
sans mettre cette ligne de code en haut du script : $AD_SAM = @()
J'ai le message d'erreur comme quoi les comptes existent déjà et il ne me crée que les 3 comptes, les premiers de la paire à chaque fois.
Par contre, si je mets cette ligne de code, il me crée bien les 6 comptes sans aucun message d'erreur, j'ai testé 2 fois l'import avec cette ligne de code.
Pourtant, dans le premier cas comme dans le deuxième, ces comptes ont bien été supprimés préalablement et le script est lancé dans les mêmes conditions.
Dernière édition: il y a 2 ans 2 mois par 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 2 mois #31139
par witness
Réponse de witness sur le sujet Doublons générés lors du traitement import AD
Je viens de refaire 6 fois l'import de suite avec les 6 comptes de test et j'ai bien l'import qui se fait sans aucun message d'erreur.
Je vais tester en ajoutant l'UPN
Je vais tester en ajoutant l'UPN
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 2 mois #31140
par witness
Réponse de witness sur le sujet Doublons générés lors du traitement import AD
Je confirme que l'import fonctionne bien avec ce script pour des comptes qui ont le même nom et la même première lettre du prénom dans le fichier d'import, que ce soit pour $SAM et pour $UPN:
Par contre, si des comptes ayant le même nom et la même première lettre de prénom préexistent dans l'AD, PowerShell me renvoie une erreur en disant que le compte existe déjà, car j'ai utilisé le même script pour mon import des 1900 comptes et j'ai constaté que les comptes en erreur étaient ceux qui avaient le même nom et la même première lettre de prénom parmi tous les comptes préexistants dans le domaine ou la forêt.
$users = import-csv -path "C:\Users\Administrateur\Desktop\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
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 ";"
Par contre, si des comptes ayant le même nom et la même première lettre de prénom préexistent dans l'AD, PowerShell me renvoie une erreur en disant que le compte existe déjà, car j'ai utilisé le même script pour mon import des 1900 comptes et j'ai constaté que les comptes en erreur étaient ceux qui avaient le même nom et la même première lettre de prénom parmi tous les comptes préexistants dans le domaine ou la forêt.
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 169
- Remerciements reçus 35
il y a 2 ans 2 mois #31142
par ericlm128
Réponse de ericlm128 sur le sujet Doublons générés lors du traitement import AD
Il n'y a plus qu'a remplacerpar
je pense que le -filter * est falcultatif
$AD_SAM = @()
$AD_SAM = get-ADuser -filter * | Select-Object -ExpandProperty SamAccountName
je pense que le -filter * est falcultatif
Les utilisateur(s) suivant ont remercié: witness
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 169
- Remerciements reçus 35
il y a 2 ans 2 mois #31143
par ericlm128
Réponse de ericlm128 sur le sujet Doublons générés lors du traitement import AD
Tes utilisateurs son peut être présent mais dans une autre OU, autant récupérer tout les utilisateurs de l'AD
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.094 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Doublons générés lors du traitement import AD