Question
Souci avec boucle Foreach
- Philippe
- Hors Ligne
- Modérateur
- Messages : 1778
- Remerciements reçus 21
je fait un petit passage pour l'erreur suivante :
c'est une erreur de saisie fréquente pour les débutants :le message d'erreur est :
Code:
Get-ADUser : Propriété : « Prenom » introuvable dans l’objet du type : « System.Management.Automation.PSCustomObject
[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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
- Messages : 968
- Remerciements reçus 0
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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
- Messages : 968
- Remerciements reçus 0
surname = nom de famille
givenname = prénom
... donc logique que tu ne trouves rien
Connexion ou Créer un compte pour participer à la conversation.
- Marco_FR
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 7
- Remerciements reçus 0
[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 \"$Prenom\"«») -and (givenname -eq \"$nom\"«»)} -Properties displayname)
Write-Host $GUSER
Get-ADUser -Filter {(surname -eq \"$Prenom\"«») -and (givenname -eq \"$Nom\"«»)} -Properties displayname
Get-ADUser -Filter {(surname -eq \"Marc\"«») -and (givenname -eq \"Test\"«»)} -Properties displayname
$GUSERSAM = @($GUSER.SamAccountName)
$GUSERDISPLAY = @($GUSER.DisplayName)[/code:1]
[code:1]Get-ADUser -Filter {(surname -eq \"$Prenom\"«») -and (givenname -eq \"$Nom\"«»)} -Properties displayname[/code:1]
Le retour de cette commande est vide.
[code:1]Get-ADUser -Filter {(surname -eq \"Marc\"«») -and (givenname -eq \"Test\"«»)} -Properties displayname
[/code:1]
Il me retourne correctement les propriétés de l'objet.
C'est quand même fou <br><br>Message édité par: Marco_Po, à: 2/10/15 11:29
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
- Messages : 1778
- Remerciements reçus 21
j'ai déjà eu ce problème et la solution !!! :[code:1] Get-ADUser -Filter {(surname -eq \"$Prenom\"«») -and (givenname -eq \"$Nom\"«»)} -Properties displayname[/code:1]
Le retour de cette commande est vide.
[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
<br><br>Message édité par: 6ratgus, à: 2/10/15 17:51Au 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.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Souci avec boucle Foreach