Question [Résolu] Mise à jour AD avec CSV => Attribut null

Plus d'informations
il y a 11 ans 3 mois #18515 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

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

Plus d'informations
il y a 11 ans 3 mois #18520 par Arnaud Petitjean
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

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 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.

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

Plus d'informations
il y a 11 ans 3 mois #18522 par Arnaud Petitjean
Ton fichier CSV est \&quot;mal\&quot; 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

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 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 \&quot;\&quot;

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

Plus d'informations
il y a 11 ans 3 mois #18524 par Laurent Dardenne
Salut,
une piste .

Tutoriels PowerShell

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

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