Meilleur auteur de réponses
Importation d'un fichier csv avec powershell

Question
-
Bonjour ! Je suis débutant en powershell et exchange, dans un exercice de classe, on me demande d'importer des contacts contenu dans des Unité d'organisation qu'on a créée dans un fichier csv vers exchange 2010 afin de pouvoir les gérées, je sais pas comment proceder, quelqu'un peut m'indiquer le chemin à suivre ou bien un tuto ? merci d'avance
- Modifié zawadi vendredi 7 décembre 2012 21:23
Réponses
-
Import-CSV -Delimiter ';' moncsv.csv
- Modifié Bruce JDCModerator lundi 10 décembre 2012 12:09
- Marqué comme réponse Florin Ciuca lundi 10 décembre 2012 14:41
-
Bonsoir,
les éléments "ID, nom, prénom,..." ne sont pas, j'imagine, un gros problème. La seule difficulté pourrait consister à devoir créer les Unités d'organisations qui seraient définies dans le fichier CSV et qui n'existeraient pas encore.
import-csv c:\temp\contacts.csv | foreach {new-mailcontact -name $_.name -externalEmailAddress $_.externalEmailAddress -firstname $_.Firstname -lastname $_.lastname -organizationalUnit $_.OrganizationalUnit}
Name Alias RecipientType
---- ----- -------------
Jacques HAMEZ JacquesHAMEZ MailContactVoici le contenu du fichier Contacts.csv
OrganizationalUnit,FirstName,LastName,Name,ExternalEmailAddress
deman.local/Contacts,Jacques,HAMEZ,Jacques HAMEZ,jhamez@free.frA bientôt,
Thierry DEMAN. Exchange MVP. MCSA Windows Server 2012 (73 MCPs). https://mvp.support.microsoft.com/profile=CE2B565B-B13D-4C24-B04D-F0D5766D14A1 http://www.faqexchange.info
- Marqué comme réponse Florin Ciuca lundi 10 décembre 2012 14:41
Toutes les réponses
-
Vous pouvez essayer ce type de commande :
import-csv "nomdufichier.csv" | new-mailcontact
Dans l'aide de la commande new-mailcontact (help new-mailcontact -full) vous pourrez voir les parametres qui prennent des arguements par le pipeline. Si dans le fichier CSV une colonne math avec le nom d'un argument, la valeur sera utilisée.
Si les arguements ne peuvent pas passer par le pipeline, vous utiliserez ce type de commande :
import-csv monfichier.csv | foreach { new-mailcontact -Identity $_.identity -monparam1 $_.colonne1 -monparam2 $_.colonne3 }
$_ correspond à l'objet actuellement passé, $_.colonne1 permet d'accéder à la valeur de l'attribut colonne1 dans l'objet.
-
Merci bcp de votre réponse
je vais essayer ce script que tu me dit ! mais je te montre aussi ceque j'ai fait.
voici ce que j'ai fait comme procédure :
1) J'ai creer le fichier csv à l'aide du fichier excel qui contient les nom des contacts, département, fonctions,Identifiant, Location.
2) je devais créer le script pour récupérer mon fichier CSV ( mais j'y arrive pas ca me donne de erreur aide stp )
-
Bonjour! j'ai essayé le script en personnalisant avec mes paramétrés mes toujours ca marche pas,
au j'ai deux sites S1 et S2 geré par le mem Server Exch et dans chaque site un Utilisateur est défini par un ID,un nom un prénom, Département,Fonction , Location
je dois faire le script pour qu'à l’exécution sur powershell chaque utilisateur soit affécté les meme paramètres telque definis dans le fichier csv que je dois importer ! merci de me guider
-
Bonsoir,
les éléments "ID, nom, prénom,..." ne sont pas, j'imagine, un gros problème. La seule difficulté pourrait consister à devoir créer les Unités d'organisations qui seraient définies dans le fichier CSV et qui n'existeraient pas encore.
import-csv c:\temp\contacts.csv | foreach {new-mailcontact -name $_.name -externalEmailAddress $_.externalEmailAddress -firstname $_.Firstname -lastname $_.lastname -organizationalUnit $_.OrganizationalUnit}
Name Alias RecipientType
---- ----- -------------
Jacques HAMEZ JacquesHAMEZ MailContactVoici le contenu du fichier Contacts.csv
OrganizationalUnit,FirstName,LastName,Name,ExternalEmailAddress
deman.local/Contacts,Jacques,HAMEZ,Jacques HAMEZ,jhamez@free.frA bientôt,
Thierry DEMAN. Exchange MVP. MCSA Windows Server 2012 (73 MCPs). https://mvp.support.microsoft.com/profile=CE2B565B-B13D-4C24-B04D-F0D5766D14A1 http://www.faqexchange.info
- Marqué comme réponse Florin Ciuca lundi 10 décembre 2012 14:41
-
Merci infiniment de vos réponses . Voici un capture de mon écran après exécution de mon suivant :
Import-CSV “C:\1DECIPLEX_Employees.csv” | foreach { New-Mailcontact –ID $_.id –Firstname $_.firstname –Lastname $_.lastname –Location $_.location –Departement $_.departement –fonction $_.fonction }
voici mon fichier CSV
ID;Firstname;Lastname;Location;Department;Function
1;Althea;Klutts;Paris;Manager;CEO
2;Hugh;Donelan;Paris;Manager;HR Manager
3;Roxie;Clouser;Paris;Manager;Business Development Manager
4;Marylou;Lukasiewicz;Paris;Marketing;Manager
5;Darren;Faulks;Paris;Marketing;Manager
-
Voici les erreurs après execution (capture )
[PS] C:\Windows\system32> | foreach { New-Mailcontact -ID $_.id -Firstname $_.firstname -Lastname $_.lastname
Au caractère Ligne:1 : 2
+ | foreach { New-Mailcontact -ID $_.id -Firstname $_.firstname -Lastname $_.last ...
+ ~
Un élément de canal vide n'est pas autorisé.
Au caractère Ligne:1 : 12
+ | foreach { New-Mailcontact -ID $_.id -Firstname $_.firstname -Lastname $_.last ...
+ ~
Accolade fermante « } » manquante dans le bloc d'instruction.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : EmptyPipeElement
[PS] C:\Windows\system32>-Location $_.location -Departement $_.departement -fonction $_.fonction
-Location : Le terme «-Location» n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou
programme exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès
est correct et réessayez.
Au caractère Ligne:1 : 1
+ -Location $_.location -Departement $_.departement -fonction $_.fonction
+ ~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (-Location:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
[PS] C:\Windows\system32>
[PS] C:\Windows\system32>} -
Par défaut les CSV exchange sont des "coma separated value", donc séparé par des virgules, alors qu'excel crée des CSV avec des ; (point virgule)
Soit transformer les ; en ,
Ou lors Import-CSC -Delimiter ';'
De même si vous pouvez, enregistrer les fichiers en UTF8 ou Unicode, et pas en ANSI, vous aurez des problèmes avec certains accents et autres caractères à la française.
- Modifié Bruce JDCModerator lundi 10 décembre 2012 09:24
-
Merci bcp de vos conseils; evidement c'est mes parametres sont separés par des point virgules au lieu de virgules, j'ai essayer d'enregistré sous d'autre format(text, csv (dos) mais ca ne vient toujours pas avec des virgules . qu'est-ce que je dois faire pour que ça soit separé par des virgules? est-ce que c'est à cause des point virgules que mon script ne passe pas? Merci encore !
-
Import-CSV -Delimiter ';' moncsv.csv
- Modifié Bruce JDCModerator lundi 10 décembre 2012 12:09
- Marqué comme réponse Florin Ciuca lundi 10 décembre 2012 14:41