Question Souci avec boucle Foreach

Plus d'informations
il y a 8 ans 6 mois #20795 par Philippe
Réponse de Philippe sur le sujet Re:Souci avec boucle Foreach
Bonjour Marco_Po et Matthew BETTON

je fait un petit passage pour l'erreur suivante :

le message d'erreur est :
Code:

Get-ADUser : Propriété : « Prenom » introuvable dans l’objet du type : « System.Management.Automation.PSCustomObject

c'est une erreur de saisie fréquente pour les débutants :

[code:1]$GUSER = @(Get-ADUser -Filter {(surname -eq $_.Prenom) -and (givenname -eq $_.Nom)} -Properties displayname)
[/code:1]
le \"parseur\" traduit mal la commande pour le nom et le prénom. il sépare le nom et prénom de la variable et l'utilise comme un paramètre !
tu doit force la recherche du nom comme ceci $($_.com)
et réécrire ta commande ainsi :
[code:1]$GUSER = @(Get-ADUser -Filter {(surname -eq $($_.Prenom)) -and (givenname -eq $($_.Nom))} -Properties displayname)
[/code:1]

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

Plus d'informations
il y a 8 ans 6 mois #20796 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Souci avec boucle Foreach
Oui... J'ai été doublé par 6ratgus ;-)

Pour

[code:1] $USER | ForEach-Object -Process {
# Donne le SamAccountName du compte qui va être ajouté
$GUSER = @(Get-ADUser -Filter {(surname -eq $_.Prenom) -and (givenname -eq $_.Nom)} -Properties displayname)
[/code:1]

Essayes ceci

[code:1] $USER | ForEach-Object -Process {
# Donne le SamAccountName du compte qui va être ajouté
$GUSER = @(Get-ADUser -Filter {(surname -eq \"$($_.Nom))\" -and (givenname -eq \"$($_.Prenom))\"} -Properties displayname)

...
[/code:1]

Sinon cela

[code:1] $USER | ForEach-Object -Process {
# Donne le SamAccountName du compte qui va être ajouté
$Prenom = $_.Prenom
$Nom = $_.Nom
$GUSER = @(Get-ADUser -Filter {(surname -eq \"$Nom\") -and (givenname -eq \"$Prenom\")} -Properties displayname)

...
[/code:1]<br><br>Message édité par: Matthew BETTON, à: 2/10/15 10:58

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

Plus d'informations
il y a 8 ans 6 mois #20797 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Souci avec boucle Foreach
Au fait, c'est l'inverse !

surname = nom de famille

givenname = prénom

... donc logique que tu ne trouves rien ;-)

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

Plus d'informations
il y a 8 ans 6 mois #20801 par Marco_FR
Réponse de Marco_FR sur le sujet Re:Souci avec boucle Foreach
En faite c'est parce que j'ai crée le compte de cette façon pour le distinguer mais ce sont les bons paramètres

[code:1]Enabled : True
GivenName : Test
Name : Test Marc
ObjectClass : user
ObjectGUID : 3066f3fd-0f2e-4aa2-8e55-559f706ce1d7
SamAccountName : test_marc
SID : S-1-5-21-1292428093-602162358-839522115-20056
Surname : Marc[/code:1]

Le script ressemble à ça pour faire les tests:

[code:1]$USER | ForEach-Object -Process {
# Donne le SamAccountName du compte qui va être ajouté
$Prenom = $_.Prenom
$Nom = $_.Nom
$GUSER = @(Get-ADUser -Filter {(surname -eq \&quot;$Prenom\&quot;«») -and (givenname -eq \&quot;$nom\&quot;«»)} -Properties displayname)
Write-Host $GUSER
Get-ADUser -Filter {(surname -eq \&quot;$Prenom\&quot;«») -and (givenname -eq \&quot;$Nom\&quot;«»)} -Properties displayname
Get-ADUser -Filter {(surname -eq \&quot;Marc\&quot;«») -and (givenname -eq \&quot;Test\&quot;«»)} -Properties displayname
$GUSERSAM = @($GUSER.SamAccountName)
$GUSERDISPLAY = @($GUSER.DisplayName)[/code:1]

[code:1]Get-ADUser -Filter {(surname -eq \&quot;$Prenom\&quot;«») -and (givenname -eq \&quot;$Nom\&quot;«»)} -Properties displayname[/code:1]
Le retour de cette commande est vide.

[code:1]Get-ADUser -Filter {(surname -eq \&quot;Marc\&quot;«») -and (givenname -eq \&quot;Test\&quot;«»)} -Properties displayname
[/code:1]
Il me retourne correctement les propriétés de l'objet.

C'est quand même fou :P<br><br>Message édité par: Marco_Po, à: 2/10/15 11:29

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

Plus d'informations
il y a 8 ans 6 mois #20810 par Philippe
Réponse de Philippe sur le sujet Re:Souci avec boucle Foreach

[code:1] Get-ADUser -Filter {(surname -eq \&quot;$Prenom\&quot;«») -and (givenname -eq \&quot;$Nom\&quot;«»)} -Properties displayname[/code:1]

Le retour de cette commande est vide.

j'ai déjà eu ce problème et la solution !!! :

[code:1]Get-ADUser -Filter {(surname -eq $nom) -and (givenname -eq $prenom)} -Properties displayname
[/code:1]
Pas de guillemets dans le filtre si c'est une variable !!!

de plus comme disais Matthew

Au fait, c'est l'inverse !

surname = nom de famille

givenname = prénom

... donc logique que tu ne trouves rien

<br><br>Message édité par: 6ratgus, à: 2/10/15 17:51

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

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