Index du forum Systèmes d'exploitation et technologies Microsoft Windows Server Import csv depuis active directory

Import csv depuis active directory

Pour échanger et obtenir de l'aide sur les éditions Windows Server, c'est par ici !


Messages: 16
Voila la composition de mon fichier CSV, couplé avec ce code, qui marche tres bien, y'a une fenêtre qui s'ouvre sur powershell me demandant de mettre un mdp, et ce mdp est valable pour les users contenues dans le fichier, grace à la commande AccountPassword (Read-Host -AsSecureString "AccountPassword")


Le fichier CSV;
Name;GivenName;Surname;SamAccountName;UserPrincipalName
Walter WHITE,Walter;WHITE,wwhite;wwhite@test.com




(Import-Csv C:\Users\Desktop\new-users.csv -Delimiter ’;’) | New-ADUser -Path ‘OU=Courrier,OU=Courrier,DC=toto,DC=lan’ -AccountPassword (Read-Host -AsSecureString "AccountPassword") -PassThru | Enable-ADAccount

Publicité
 


Messages: 3
Salut Solidus,

J'ai vu ton message dans l'autre sujet.

Pour ta demande, la suggestion que je pourrai te donner est de créer une colonne "Password" dans le fichier CSV.

Par contre, il faudra légèrement modifié ton script. On pourrait transformer ton script comme ceci :

$listeUsers = Import-Csv C:\Users\Desktop\new-users.csv -Delimiter ’;’ ==> je déclare d'abord une variable pour récupérer le contenu du CSV

Ensuite, je manipule cette variable "$listeUsers" avec une boucle ForEach... (voir ci-dessous)

foreach ($user in $listeUsers) { New-ADUser -Path ‘OU=Courrier,OU=Courrier,DC=toto,DC=lan’ -Name $user.Name -GivenName $user.GivenName -Surname $user.Surname -SamAccountName $user.SamAccountName -AccountPassword (ConvertTo-SecureString -AsPlainText (echo $user.Password) -Force) -PassThru | Enable-ADAccount }

En gros, je lui dis : "Pour chaque user dans la liste (chaque ligne du CSV), crée moi l'utilisateur avec son nom, prénom,etc... et son password (crypté) puis actives le !!"

La commande "echo $user.Password", c'est pour forcer Powershell à me retourner la chaîne de caractères du mot de passe.

J'ai testé ce script sur un controleur de domaine AD dans une VM ==> ça a fonctionné ! Les mots de passes que j'ai utilisé sont du style "Azerty01$","Azerty02$", etc...


Peut qu'il y a une solution plus simple mais je ne la connais pas ...


Messages: 16
Merci bcp pour ton aide mais ca ne marche tjr pas, et j'ai bien rajouté la colonne Password sur mon CSV
Comment faire cohabiter le import csv et le code que tu m'as donné ?

Mon CSV
Name;GivenName;Surname;SamAccountName;UserPrincipalName;Password
Walter WHITE,Walter;WHITE,wwhite;wwhite@test.com,S@lida13


Le SamAccountName est le login des user (ici wwhite)


Ci dessous mon code que tu as modifié, j'ai fais un copier coller de mon code sur Powershell ISE

$listeUsers = Import-Csv C:\Users\Desktop\new-users.csv -Delimiter ’;’ foreach ($user in $listeUsers) { New-ADUser -Path ‘OU=Cou,OU=to,DC=to,DC=lan’ -Name $user.Name -GivenName $user.GivenName -Surname $user.Surname -SamAccountName $user.SamAccountName -AccountPassword (ConvertTo-SecureString -AsPlainText (echo $user.Password) -Force) -PassThru | Enable-ADAccount }




Jeton « in » inattendu dans une expression ou une instruction.
At line:1 char:89

Jeton « listeUsers » inattendu dans une expression ou une instruction.
At line:1 char:9



:( Je suis perdu je sais plus quoi faire.........

Je peux te contacter en privé stp ? je peux te fournir le fichier CSV pour être le plus complet possible.


Messages: 16
J'ai refait un autre test

$listeUsers = Import-Csv C:\Users\Desktop\new-users.csv -Delimiter ’;’
foreach ($user in $listeUsers) { New-ADUser -Path ‘OU=Courrier,OU=to,DC=to,DC=lan’ -Name $user.Name -GivenName $user.GivenName -Surname $user.Surname -SamAccountName $user.SamAccountName -AccountPassword (ConvertTo-SecureString -AsPlainText (echo $user.Password) -Force) -PassThru | Enable-ADAccount }




Import-Csv : Impossible de traiter l'argument, car la valeur de l'argument « name » n'est pas valide. Modifiez la valeur de l'argument « name » et réexécute
z l'opération.
Au niveau de ligne : 1 Caractère : 25
+ $listeUsers = Import-Csv <<<< C:\Users\Desktop\new-users.csv -Delimiter ’;’
+ CategoryInfo : InvalidArgument: (:) [Import-Csv], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.ImportCsvCommand

ConvertTo-SecureString : Impossible de lier l'argument au paramètre « String », car il a la valeur Null.
Au niveau de ligne : 2 Caractère : 230
+ foreach ($user in $listeUsers) { New-ADUser -Path ‘OU=Courrier,OU=to,DC=to,DC=lan’ -Name $user.Name -GivenName $user.GivenName -Surname $user.Surname -S
amAccountName $user.SamAccountName -AccountPassword (ConvertTo-SecureString <<<< -AsPlainText (echo $user.Password) -Force) -PassThru | Enable-ADAccount }
+ CategoryInfo : InvalidData: (:) [ConvertTo-SecureString], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand


Messages: 3
Salut !


Je viens de reprendre le taf. Je ne suis pas toujours dispo.


Je crois que j'ai rencontré le même problème que toi. Ce sont les virgules qui posent problème dans ton fichier CSV.

Dans ton fichier d'exemple, tu as mis ceci :

Name;GivenName;Surname;SamAccountName;UserPrincipalName;Password
Walter WHITE,Walter;WHITE,wwhite;wwhite@test.com,S@lida13


Il faudrait plutôt mettre ceci (que des points-virgule entre chaque champ) :

Name;GivenName;Surname;SamAccountName;UserPrincipalName;Password
Walter WHITE;Walter;WHITE;wwhite;wwhite@test.com;S@lida13


Concernant l'erreur avec Import-Csv, essaies de mettre l'option "-Path" devant "C:\Users\Desktop\new-users.csv". Peut être que ça passera mieux avec Powershell 2.0 ...

A+


Messages: 16
Nosouci, c'est deja cool de 'maider, tu es tech ou admin ?

merci pour ton aide, mais c'est tjr pareil, avec le même message d'erreur

Est ce que par hasard je peux te fournir en MP mon fichier CSV et essayer sur ton AD stp ? Car j'ai tout essayé et je ne sais plus quoi faire, ce serait super sympa.

Merci bcp !

Précédente

Retourner vers Windows Server

cron