Question Import csv avec adresse email

Plus d'informations
il y a 15 ans 5 mois #7890 par disquette
Bonjour à tous

Je désire mettre à jour mon AD d'apres l'adresse email et je n'arrive pas à le faire :S
voici le script:
[code:1]Import-Csv c:\users.csv | foreach { Get-QADUser $_.email | Set-QADUser -ObjectAttributes @{employeeID=$_.employeeID} [/code:1]

mon fichier d'import:
[code:1]employeeID;sn;givenName;title;extensionAttribute5;extensionAttribute6;Account-Expires;L Statut;extensionAttribute1;extensionAttribute2;extensionAttribute3;email;department;physicalDeliveryOfficeName[/code:1]
dans un premier temps je desire mettre à jour l'objet employeeID

Je galere depuis une semaine au secours !!!<br><br>Message édité par: Arnaud, à: 8/10/10 09:25

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 5 mois #7898 par Richard Lazaro
Bonjour,

Est ce que tu as des erreurs de levées ?
Est ce que tu as essayé de faire ça à la main ou pas à pas et vérifier les valeurs de tes variables ?

Hmm, je suis bête. Ta variable $_ dans ton Set-QADUser ne contient plus ton fichier csv, mais contient courant du pipeline c'est à dire l'objet retourné par Get-QADUser

Je suppose que le plus simple à faire est cela :


[code:1]Import-Csv C:\users.csv `
| %{ $employeeID = $_.employeeID ; `
Get-QADUser $_.email `
| Set-QADUser -ObjectAttributes @{employeeID=$employeeID } [/code:1]
L'objet courant du pipeline est stocké dans $_ après le premier pipeline ta variable $_ stocke donc bien tes objets provenant du csv, mais par la suite tu chaînes un deuxième pipeline donc ta variable $_ contient l'objet retourné par la commande/function/string précedent le pipeline.

As tu compris mes explications ? J'ai jamais vraiment été doué pour cela ... c'est clair dasn ma tête mais pas dans celle des autres :p

Bien Cordialement,
Richard Lazaro.<br><br>Message édité par: Arnaud, à: 8/10/10 09:26

Think-MS : (Get-Life).Days | %{ Learn-More }

\\&quot;Problems cannot be solved by the same level of thinking that created them.\\&quot; - Albert Einstein

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 5 mois #7909 par disquette
Réponse de disquette sur le sujet Re:Import csv avec adresse email
Merci de m'aider,

cela ne fonctionne pas mieux la variable $employeeID est toujours à $nul en pas à pas puisensuite message d'erreur :

Impossible de valider l'argument sur le paramètre « Identity ». L'argument est null ou vide. Indiquez un argument qui n'est pas null ou vide et réessayez.
à : ligne:3 caractère:11
+ Get-QADUser &lt;&lt;&lt;&lt; $_.email `
:angry:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 5 mois #7911 par Arnaud Petitjean
Bonjour,

Un petit conseil : exécute ton script petits bouts, par petits bouts afin de valider chaque partie unitairement.
Ca évite comme ça des longues heures de prise de tête.

As tu validé que ton Import-CSV s'effectue correctement ? Car à la première lecture, je vois que ton fichier CSV a comme séparateur le point-virgule alors que Import-CSV attend par défaut la virgule.

Essaie d'ajouter le paramètre -Delimiter ';' à Import-CSV.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 5 mois #7923 par disquette
Réponse de disquette sur le sujet Re:Import csv avec adresse email
Bonjour,:)

Il y a du \&quot;mieux\&quot; avec -Delimiter ';' les variables sont correctement remplies en mode debug.
Par contre je rencontre un probleme si je ne matche pas dans mon AD employeeID reste identique jusqu'a la fin.
:angry:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 5 mois #7926 par Richard Lazaro
Oui, autant pour moi j'ai oublié de t'avertir sur le Delimiter ... le delimiter est en fonciton de la culture de la machine soit , ou ; par exemple.

Pourrais tu donner l'erreur que tu obtients ? (si ton problème n'est toujours pas réglé, je suis désolé du temps de réponse ... trop de taff Moins de temps libre ^^)

Think-MS : (Get-Life).Days | %{ Learn-More }

\\&quot;Problems cannot be solved by the same level of thinking that created them.\\&quot; - Albert Einstein

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.044 secondes
Propulsé par Kunena