Question
[Résolu] Mise à jour AD avec CSV => Attribut null
- Favre
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 11 ans 3 mois #18515
par Favre
[Résolu] Mise à jour AD avec CSV => Attribut null a été créé par Favre
Bonjour,
je suis en train d'essayer de mettre à jour un annuaire ActiveDirectory via un CSV en PowerShell.
Voici mon script
[code:1]
Import-Module ActiveDirectory
$users = Import-Csv -Path c:\test-im-ad2.csv
foreach ($user in $users) {
Get-ADUser -Filter \"SamAccountName -eq '$($user.samaccountname)'\" -Properties telephoneNumber,civilite,ipPhone,mobile,description,employeeID -SearchBase \"DC=siveer,DC=fr\" |
Set-ADUser -Replace @{telephoneNumber=$user.telephoneNumber;
ipPhone=$user.ipPhone;
mobile=$user.mobile;
civilite=$user.civilite;
employeeID=$user.employeeID;
description=$user.description}
}[/code:1]
Ce script fonctionne.
Mon problème est que dans mon csv que j'importe j'ai des champs vides, si je les laisse vides PS me met des erreurs.
J'aimerai savoir comment faire interpréter un champs null dans le CSV par PS sans qu'il me mette à jour mon AD par se que j'ai mi dans le champs vide.
Merci de votre Aide.<br><br>Message édité par: Arnaud, à: 2/12/14 11:28
je suis en train d'essayer de mettre à jour un annuaire ActiveDirectory via un CSV en PowerShell.
Voici mon script
[code:1]
Import-Module ActiveDirectory
$users = Import-Csv -Path c:\test-im-ad2.csv
foreach ($user in $users) {
Get-ADUser -Filter \"SamAccountName -eq '$($user.samaccountname)'\" -Properties telephoneNumber,civilite,ipPhone,mobile,description,employeeID -SearchBase \"DC=siveer,DC=fr\" |
Set-ADUser -Replace @{telephoneNumber=$user.telephoneNumber;
ipPhone=$user.ipPhone;
mobile=$user.mobile;
civilite=$user.civilite;
employeeID=$user.employeeID;
description=$user.description}
}[/code:1]
Ce script fonctionne.
Mon problème est que dans mon csv que j'importe j'ai des champs vides, si je les laisse vides PS me met des erreurs.
J'aimerai savoir comment faire interpréter un champs null dans le CSV par PS sans qu'il me mette à jour mon AD par se que j'ai mi dans le champs vide.
Merci de votre Aide.<br><br>Message édité par: Arnaud, à: 2/12/14 11:28
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 11 ans 3 mois #18520
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:Mise à jour AD, attribut null
Salut,
Je suis surpris que cela pose problème. Les champs vides sont-ils matérialisés par une chaine vide '' dans ton fichier CSV ?
Si cela pose réellement un souci c'est que c'est la commande Set-ADUser qui n'accepte pas de champ NULL. Dans ce cas ce sera à toi de vérifier de ne pas passer une telle valeur ou de la convertir en chaine vide.
Arnaud
Je suis surpris que cela pose problème. Les champs vides sont-ils matérialisés par une chaine vide '' dans ton fichier CSV ?
Si cela pose réellement un souci c'est que c'est la commande Set-ADUser qui n'accepte pas de champ NULL. Dans ce cas ce sera à toi de vérifier de ne pas passer une telle valeur ou de la convertir en chaine vide.
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.
- Favre
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 11 ans 3 mois #18521
par Favre
Réponse de Favre sur le sujet Re:Mise à jour AD, attribut null
Merci de la réponse, dans mon .csv je n'ai pas les double quote à chaque champs vide. Moi dans mon cas mon csv est plutôt sous la forme :
a,b,,c
,,a,b
Mon fichier est peut-être mal formaté, mais je ne pense pas car quand je rempli tous les champs vide, ça fonctionne bien.
Il y aurait-t-il un moyen de faire un tri et de ne pas choisir les champs vide. J'ai trouvé la commande where-objet.
a,b,,c
,,a,b
Mon fichier est peut-être mal formaté, mais je ne pense pas car quand je rempli tous les champs vide, ça fonctionne bien.
Il y aurait-t-il un moyen de faire un tri et de ne pas choisir les champs vide. J'ai trouvé la commande where-objet.
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 11 ans 3 mois #18522
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:Mise à jour AD, attribut null
Ton fichier CSV est \"mal\" formaté dans le sens où l'absence de valeur doit correspondre à une valeur nulle. Tu n'aurais pas d'erreur si tu avais mis des guillemets au lieu de rien.
Si l'erreur vient vraiment de là (ce que je pense, mais je n'ai pas testé) et que tu ne souhaites pas modifier le contenu de ton fichier, alors c'est à toi de modifier ton script pour qu'il ne passe pas de valeur nulle aux paramètres de Set-ADUser.
Ou alors tu fais un script qui modifie ton fichier CSV pour remplacer les valeurs nulles par des quotes.
Arnaud
Si l'erreur vient vraiment de là (ce que je pense, mais je n'ai pas testé) et que tu ne souhaites pas modifier le contenu de ton fichier, alors c'est à toi de modifier ton script pour qu'il ne passe pas de valeur nulle aux paramètres de Set-ADUser.
Ou alors tu fais un script qui modifie ton fichier CSV pour remplacer les valeurs nulles par des quotes.
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.
- Favre
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 11 ans 3 mois #18523
par Favre
Réponse de Favre sur le sujet Re:Mise à jour AD, attribut null
Hum il me semble que j'ai déjà fait le test en remplacent les champs vide par des quotes, sauf que du coup ça prend mes quotes pour du texte et ça me rempli mes attributs.
J'ai essayé de chercher un moyen afin qu'il ne me passe pas les valeurs nulle à la commande Set-ADuser en rajoutant :
$users = Import-Csv -Path c:\test-im-ad2.csv | where-object $_.properties.value -nocontains \"\"
J'ai essayé de chercher un moyen afin qu'il ne me passe pas les valeurs nulle à la commande Set-ADuser en rajoutant :
$users = Import-Csv -Path c:\test-im-ad2.csv | where-object $_.properties.value -nocontains \"\"
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 3 mois #18524
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Mise à jour AD, attribut null
Salut,
une piste .
une piste .
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.051 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Mise à jour AD avec CSV => Attribut null