Question
Active Directory - Recherche d'utilisateur
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
Le paramètre '-Filter' de 'Get-AdUser' ne prend pas de script block mais un string :
[code:1]
PS>Get-Help Get-ADUser -Parameter filter
-Filter <string>
Specifies a query string that retrieves Active Directory objects.
[/code:1]
Pour plus d'informations concernant les filtres Active Directory :
[code:1]
Get-Help About_ActiveDirectory_Filter
[/code:1]
Voir aussi :
Active Directory Powershell – Advanced Filter
expanding variable inside -filter (voir réponse de 'Kazun')
@+
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
Merci de ta réponse
mais cela ne marche toujours pas
Voici ce que je souhaite faire
# Je recuepre mes adresse mail
$utilisateurs = Get-Content .\adressemail1.txt
#Je parcours mon fichier
Foreach ($Ligne in $utilisateurs)
{
# Je cherche mon samaccountname
write-host $Ligne
get-aduser -filter {mail -eq $Ligne} -properties * |select samaccountname
Cela ne fonctionne pas car il ne reconnait pas le \"-filter\"
Sinon ta commande fonctionne mais pas avec la variable.
Les adresse mails n'ont pas de guillemet et le résultat et le même lorsque j'en met
Essayes :
[code:1]get-aduser -filter \"mail -eq $Ligne\" -properties * |select samaccountname[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Daniel
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 10
- Remerciements reçus 0
Hélas, l'erreur est toujours présente. Est-ce que je dois mettre les adresse mail qui sont dans le fichier txt entre ''?
Lorsque je les mets, je recepère bien le samaccount mais il m'affiche quand même l'erreur
Get-ADUser : Error parsing query: 'mail -eq Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.' Error M
essage: 'syntax error' at position: '10'.
Merci à toi
Connexion ou Créer un compte pour participer à la conversation.
- darphboubou
- Hors Ligne
- Membre premium
-
- Messages : 135
- Remerciements reçus 0
[code:1]-ldapfilter '(name = $mail)[/code:1] à la place du -filter
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
Merci Matthew,
Hélas, l'erreur est toujours présente. Est-ce que je dois mettre les adresse mail qui sont dans le fichier txt entre ''?
Lorsque je les mets, je recepère bien le samaccount mais il m'affiche quand même l'erreur
Get-ADUser : Error parsing query: 'mail -eq Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.' Error M
essage: 'syntax error' at position: '10'.
Merci à toi
Je ne dispose pas d'environnement de tests...
Essayes :
[code:1]get-aduser -filter \"mail -eq `\"$Ligne`\"\" -properties * |select samaccountname
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
Je ne dispose pas d'environnement de tests...
Bon, je retire ce que j'ai dit
DC 2008 R2 monté en VM (PowerShell V2) :
[code:1]PS C:\Users\Mat> $mail = \"mat@contoso.com\"
PS C:\Users\Mat> Get-ADUser -Filter \"mail -eq $mail\"
Get-ADUser : Error parsing query: 'mail -eq Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.' Error Message: 'syntax error' at position: '10'.
At line:1 char:11
+ Get-ADUser <<<< -Filter \"mail -eq $mail\"
+ CategoryInfo : ParserError: (:«») [Get-ADUser], ADFilterParsingException
+ FullyQualifiedErrorId : Error parsing query: 'mail -eq Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.' Error Message: 'syntax error' at positio
n: '10'.,Microsoft.ActiveDirectory.Management.Commands.GetADUser
PS C:\Users\Mat> Get-ADUser -Filter \"mail -eq `\"$mail`\"\"
DistinguishedName : CN=Mat,CN=Users,DC=contoso,DC=com
Enabled : True
GivenName :
Name : Mat
ObjectClass : user
ObjectGUID : 0993556c-83c1-462f-871d-4b910d2410c2
SamAccountName : Mat
SID : S-1-5-21-3903709217-3944986149-2202811918-1000
Surname :
UserPrincipalName :
[/code:1]
Cela fonctionne également avec les simples quotes :
[code:1]PS C:\Users\Mat> Get-ADUser -Filter \"mail -eq '$mail'\"
DistinguishedName : CN=Mat,CN=Users,DC=contoso,DC=com
Enabled : True
GivenName :
Name : Mat
ObjectClass : user
ObjectGUID : 0993556c-83c1-462f-871d-4b910d2410c2
SamAccountName : Mat
SID : S-1-5-21-3903709217-3944986149-2202811918-1000
Surname :
UserPrincipalName :
[/code:1]
Idem si je ne passe pas par une variable :
[code:1]PS C:\Users\Mat> Get-ADUser -Filter \"mail -eq mat@contoso.com\"
Get-ADUser : Error parsing query: 'mail -eq Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.' Error Message: 'syntax error' at position: '10'.
At line:1 char:11
+ Get-ADUser <<<< -Filter \"mail -eq mat@contoso.com\"
+ CategoryInfo : ParserError: (:«») [Get-ADUser], ADFilterParsingException
+ FullyQualifiedErrorId : Error parsing query: 'mail -eq Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.' Error Message: 'syntax error' at positio
n: '10'.,Microsoft.ActiveDirectory.Management.Commands.GetADUser
PS C:\Users\Mat> Get-ADUser -Filter \"mail -eq 'mat@contoso.com'\"
DistinguishedName : CN=Mat,CN=Users,DC=contoso,DC=com
Enabled : True
GivenName :
Name : Mat
ObjectClass : user
ObjectGUID : 0993556c-83c1-462f-871d-4b910d2410c2
SamAccountName : Mat
SID : S-1-5-21-3903709217-3944986149-2202811918-1000
Surname :
UserPrincipalName :
[/code:1]
Enfin :
[code:1]PS C:\Users\Mat> Get-ADUser -Filter \"mail -eq `\"$mail`\"\" | select -ExpandProperty SamAccountName
Mat
PS C:\Users\Mat> (Get-ADUser -Filter \"mail -eq `\"$mail`\"\"«»).SamAccountName
Mat
PS C:\Users\Mat> Get-ADUser -Filter \"mail -eq '$mail'\" | select -ExpandProperty SamAccountName
Mat
PS C:\Users\Mat> (Get-ADUser -Filter \"mail -eq '$mail'\"«»).SamAccountName
Mat[/code:1]<br><br>Message édité par: Matthew BETTON, à: 23/04/13 21:56
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Active Directory - Recherche d'utilisateur