Question Erreur Import utilisateur CSV

Plus d'informations
il y a 13 ans 2 mois #14080 par ANTRI Mohamed
Bonjour à tous,

Je demande pourquoi lorsque je fais un get-aduser dans une boucle foreach j'ai une erreur qui apparait. Alors que lorsque je le fait à l'exterieur de la boucle, tout fonctionne correctement. j'ai surement une erreur de nommage dans mes variables:

[code:1]Import-Module ActiveDirectory

# Ligne permettant de récupérer notre fichier csv. Il est important de spécifier l'attribut Delimiter \";\" pour lui dire que notre séparateur de champs sera le \";\"
$list = Import-Csv -Path \"Test.csv\" -Delimiter \";\"
$OU = \"OU=Rabat,DC=intranet,DC=com\"

#Nous allons maintenant parcourir les utilisateurs de notre fichier
foreach ($utilisateur in $list)
{
#write-host $utilisateur.displayName
Get-ADUser -Filter {Name -eq $utilisateur.displayName} -SearchBase $OU


}[/code:1]

j'obtient l'erreur:

[code:1]
Get-ADUser : Property: 'displayName' not found in object of type: 'System.Management.Automation.PSCustomObject'.
At line:11 char:14
+ Get-ADUser <<<< -Filter {Name -eq $utilisateur.displayName} -SearchBase $OU
+ CategoryInfo : InvalidArgument: (:«») [Get-ADUser], ArgumentException
+ FullyQualifiedErrorId : Property: 'displayName' not found in object of type: 'System.Management.Automation.PSCustomObject'.,Microsoft.ActiveDirectory.Management.Commands.GetADUser
[/code:1]

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

Plus d'informations
il y a 13 ans 2 mois #14082 par Matthew BETTON
Bonjour,

Peux tu STP poster ici le contenu (ou le début du contenu) de \"Test.csv\" ?

Le message d'erreur indique que la propriété \"Displayname\" n'a pas été trouvée sur '$utilisateur'. Peut être que le séparateur de ton fichier csv n'est pas le \";\" ou bien que la colonne \"displayname\" n'existe pas ...

@ +

Matthew

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

Plus d'informations
il y a 13 ans 2 mois #14083 par ANTRI Mohamed
[code:1]sn;givenName;displayName;Mail;userPrincipalName
Anouar;Amal;Amal Anouar;Amal.Anouar@test.com;Anouaam@test.com[/code:1]

Je viens de me rendre compte que quand je récupère les élèments dans une variable dans ma boucle foreach et bah alors cela fonctionne. Voilà pourquoi je pense qu'il s'agit d'un problème de nommage de variable.

[code:1]
foreach ($utilisateur in $list)
{
$dn = $utilisateur.displayName
$givenName = $utilisateur.givenName
$Mail = $utilisateur.Mail
$sn = $utilisateur.sn
$UPN = $utilisateur.userPrincipalName



(Get-ADUser -Filter {Name -eq $dn} -SearchBase $OU)


}
[/code:1]

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

Plus d'informations
il y a 13 ans 2 mois #14085 par Matthew BETTON
Peux tu tester de cette façon :

[code:1]
#Nous allons maintenant parcourir les utilisateurs de notre fichier
foreach ($utilisateur in $list)
{
#write-host $utilisateur.displayName
Get-ADUser -Filter {Name -eq \"$($utilisateur.displayName)\"} -SearchBase $OU

}
[/code:1]

Pour faire en sorte que le parser interpréte la chaine avant de la passer dans le paramètre.

Attention au diminutif 'DN' qui normalement est utilisé pour désigner un 'distinguishedName' et pas un 'displayName' ;)

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

Plus d'informations
il y a 13 ans 2 mois #14094 par ANTRI Mohamed
Non cela ne fonctionne pas. Il considère le champs Filter comme vide !

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

Plus d'informations
il y a 13 ans 2 mois #14207 par Philippe
Réponse de Philippe sur le sujet Re:Erreur Import utilisateur CSV
salut

je sais pas si ta trouver une solution
mais je te donne celle que j'ai trouver

[code:1]foreach ($utilisateur in $list)
{
$o = $utilisateur.displayName
Get-ADUser -Filter {Name -eq $o} -SearchBase $OU
}[/code:1]
car cette solution envoie
[code:1]foreach ($utilisateur in $list)
{
#write-host $utilisateur.displayName
Get-ADUser -Filter {Name -eq \"$($utilisateur.displayName)\"} -SearchBase $OU
}[/code:1]
renvoie ca :

Get-ADUser -Filter {Name -eq @{sn=Anouar; givenName=Amal; displayName=yves; Mail=Amal.Anouar@test.com; userPrincipalName=Anouaam@test.com}.displayName} -SearchBase OU=utilisateurs divers,DC=domaine,DC=lan

il ne voit plus l'objet !!!

bon codage<br><br>Message édité par: 6ratgus, à: 6/03/13 20:35

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

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