Question
Import csv avec adresse email
- disquette
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 15 ans 5 mois #7890
par disquette
Import csv avec adresse email a été créé par disquette
Bonjour à tous
Je désire mettre à jour mon AD d'apres l'adresse email et je n'arrive pas à le faire
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
Je désire mettre à jour mon AD d'apres l'adresse email et je n'arrive pas à le faire
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.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 5 mois #7898
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Import csv avec adresse email
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
Bien Cordialement,
Richard Lazaro.<br><br>Message édité par: Arnaud, à: 8/10/10 09:26
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
Bien Cordialement,
Richard Lazaro.<br><br>Message édité par: Arnaud, à: 8/10/10 09:26
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- disquette
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
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 <<<< $_.email `
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 <<<< $_.email `
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 15 ans 5 mois #7911
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:Import csv avec adresse email
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
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.
- disquette
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
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 \"mieux\" 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.
Il y a du \"mieux\" 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.
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 5 mois #7926
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Import csv avec adresse email
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 ^^)
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 }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.044 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Import csv avec adresse email