Question
Compte AD CSV et espaces
- Thomas
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 12 ans 9 mois #15071
par Thomas
Compte AD CSV et espaces a été créé par Thomas
Bonjour,
Je souhaite créer des comptes AD via un script powershell. Les données dsont importées via un fichier csv. Les comptes sont bien créés mais j'obtiens des résultats étranges.
Tous les champs se remplissent à l'exception du champ sn (nom de famille).
De plus, le script génère un ou plusieurs espaces avant de saisir les données dans certains champs (CN, display name, givenName, samaccountname). Les espaces ne sont pas générés sur tous les comptes.. Au final, je ne peux me loguer avec certains comptes à cause des espaces.
Pour que les accents soient pris en comptes, j'encode le fichier csv en UTF-8. J'ai créé le fichier csv avec Excel 2010, mais je n'arrive pas à l'encoder en UTF-8. Je suis obligé de l'ouvrir avec le bloc note et de l'encode en UTF-8.
Si quelqu'un a une idée..
Merci d'avance.
Voici la structure du fichier csv:
sn givenname displayname name samaccountname userprincipalname password department
Voici le script:
Importation du fichier .CSV
echo \" Importation du fichier CSV \"
$utilisateurs = Import-Csv -path \"C:\Add_User_Powershell\comptes.csv\" -Delimiter ';'
# Création de líutilisateur
foreach($utilisateurs in $utilisateurs)
{
$pass = $utilisateurs.password
$sn = $utilisateurs.sn
$givenname = $utilisateurs.givenname
$displayname = $utilisateurs.displayname
$name = $utilisateurs.name
$loginWin2000 = $utilisateurs.samaccountname
$login = $utilisateurs.userprincipalname
$mail = $utilisateurs.mail
$ou = \" CN=Users,DC=sdis57,DC=fr \"
$password = $utilisateurs.password
$service = $utilisateurs.department
echo \" Création de líutilisateur $displayname \"
new-ADUser -name \" $name \" -givenname \" $givenname \" -Surname \" $sn \" -displayname \" $displayname \" -samaccountname \" $loginWin2000 \" -userPrincipalName \"$login\" -department \"$service\" -emailaddress \" $mail \" -enabled 1 ñaccountpassword (convertto-securestring $password -asplaintext -force)
echo \" Utilisateur $displayname crée \"
}
Je souhaite créer des comptes AD via un script powershell. Les données dsont importées via un fichier csv. Les comptes sont bien créés mais j'obtiens des résultats étranges.
Tous les champs se remplissent à l'exception du champ sn (nom de famille).
De plus, le script génère un ou plusieurs espaces avant de saisir les données dans certains champs (CN, display name, givenName, samaccountname). Les espaces ne sont pas générés sur tous les comptes.. Au final, je ne peux me loguer avec certains comptes à cause des espaces.
Pour que les accents soient pris en comptes, j'encode le fichier csv en UTF-8. J'ai créé le fichier csv avec Excel 2010, mais je n'arrive pas à l'encoder en UTF-8. Je suis obligé de l'ouvrir avec le bloc note et de l'encode en UTF-8.
Si quelqu'un a une idée..
Merci d'avance.
Voici la structure du fichier csv:
sn givenname displayname name samaccountname userprincipalname password department
Voici le script:
Importation du fichier .CSV
echo \" Importation du fichier CSV \"
$utilisateurs = Import-Csv -path \"C:\Add_User_Powershell\comptes.csv\" -Delimiter ';'
# Création de líutilisateur
foreach($utilisateurs in $utilisateurs)
{
$pass = $utilisateurs.password
$sn = $utilisateurs.sn
$givenname = $utilisateurs.givenname
$displayname = $utilisateurs.displayname
$name = $utilisateurs.name
$loginWin2000 = $utilisateurs.samaccountname
$login = $utilisateurs.userprincipalname
$mail = $utilisateurs.mail
$ou = \" CN=Users,DC=sdis57,DC=fr \"
$password = $utilisateurs.password
$service = $utilisateurs.department
echo \" Création de líutilisateur $displayname \"
new-ADUser -name \" $name \" -givenname \" $givenname \" -Surname \" $sn \" -displayname \" $displayname \" -samaccountname \" $loginWin2000 \" -userPrincipalName \"$login\" -department \"$service\" -emailaddress \" $mail \" -enabled 1 ñaccountpassword (convertto-securestring $password -asplaintext -force)
echo \" Utilisateur $displayname crée \"
}
Connexion ou Créer un compte pour participer à la conversation.
- darphboubou
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 135
- Remerciements reçus 0
il y a 12 ans 9 mois #15129
par darphboubou
Réponse de darphboubou sur le sujet Re:Compte AD CSV et espaces
tu peux nous donner un exemple sur ton fichier CSV.
Pour info pour ma part, les espace je les garde que pour ma part je manipule le nom a savoi pour:
-surname :je garde le nom comme indiqué dans le csv
par contre pour le
-samaccountname : j'opère des modification sur la chaine de caractere
exemple
[code:1]
$sam = $utilisateurs.samaccountname
$samaccountname=$sam.Replace('-','').replace(' ','')
[/code:1]
Comme ça plus d'espace ou de - dans le samaccount name créé
Pour info pour ma part, les espace je les garde que pour ma part je manipule le nom a savoi pour:
-surname :je garde le nom comme indiqué dans le csv
par contre pour le
-samaccountname : j'opère des modification sur la chaine de caractere
exemple
[code:1]
$sam = $utilisateurs.samaccountname
$samaccountname=$sam.Replace('-','').replace(' ','')
[/code:1]
Comme ça plus d'espace ou de - dans le samaccount name créé
Connexion ou Créer un compte pour participer à la conversation.
- Thomas
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 12 ans 9 mois #15133
par Thomas
Réponse de Thomas sur le sujet Re:Compte AD CSV et espaces
Bonjour,
Merci pour votre aide. Etant assez pressé et ne trouvant pas de solution, j'ai utilisé un autre script assez proche mais fonctionnant parfaitement.
J'ai créé un fichier csv identique et, avec ce script, ça fonctionne..
Merci encore.
Le voici:
#ImportADusers
$Users = Import-Csv -Delimiter \";\" -Path \".\liste-comptes.csv\"
foreach ($User in $Users)
{
$ou = \"CN=Users,DC=sdis57,DC=fr\"
$pass = $User.Password
$login = $User.userprincipalname
$loginwin2000= $User.samaccountname
New-ADUser -Name $User.ID -samaccountname $loginwin2000 -surname $User.sn -givenname $User.givenname -displayname $User.displayname -userprincipalname $login -AccountPassword (ConvertTo-SecureString $pass -AsPlainText -force) -ChangePasswordAtLogon $true -Enabled $true -Path $ou -department $User.department
}
Merci pour votre aide. Etant assez pressé et ne trouvant pas de solution, j'ai utilisé un autre script assez proche mais fonctionnant parfaitement.
J'ai créé un fichier csv identique et, avec ce script, ça fonctionne..
Merci encore.
Le voici:
#ImportADusers
$Users = Import-Csv -Delimiter \";\" -Path \".\liste-comptes.csv\"
foreach ($User in $Users)
{
$ou = \"CN=Users,DC=sdis57,DC=fr\"
$pass = $User.Password
$login = $User.userprincipalname
$loginwin2000= $User.samaccountname
New-ADUser -Name $User.ID -samaccountname $loginwin2000 -surname $User.sn -givenname $User.givenname -displayname $User.displayname -userprincipalname $login -AccountPassword (ConvertTo-SecureString $pass -AsPlainText -force) -ChangePasswordAtLogon $true -Enabled $true -Path $ou -department $User.department
}
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.038 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Compte AD CSV et espaces