Question
Erreur Import utilisateur CSV
- ANTRI Mohamed
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 124
- Remerciements reçus 0
il y a 13 ans 2 mois #14080
par ANTRI Mohamed
Erreur Import utilisateur CSV a été créé 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]
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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 13 ans 2 mois #14082
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Erreur Import utilisateur CSV
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
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.
- ANTRI Mohamed
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 124
- Remerciements reçus 0
il y a 13 ans 2 mois #14083
par ANTRI Mohamed
Réponse de ANTRI Mohamed sur le sujet Re:Erreur Import utilisateur CSV
[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]
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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 13 ans 2 mois #14085
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Erreur Import utilisateur CSV
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'
[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.
- ANTRI Mohamed
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 124
- Remerciements reçus 0
il y a 13 ans 2 mois #14094
par ANTRI Mohamed
Réponse de ANTRI Mohamed sur le sujet Re:Erreur Import utilisateur CSV
Non cela ne fonctionne pas. Il considère le champs Filter comme vide !
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
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 :
bon codage<br><br>Message édité par: 6ratgus, à: 6/03/13 20:35
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 :
il ne voit plus l'objet !!!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
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Erreur Import utilisateur CSV