Question Active Directory - Recherche d'utilisateur

Plus d'informations
il y a 12 ans 11 mois #14657 par Matthew BETTON
Bonjour,

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.

Plus d'informations
il y a 12 ans 11 mois #14658 par Matthew BETTON
oolusitanoo écrit:

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.

Plus d'informations
il y a 12 ans 11 mois #14661 par Daniel
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

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

Plus d'informations
il y a 12 ans 11 mois #14662 par darphboubou
Et si tu essaies avec un

[code:1]-ldapfilter '(name = $mail)[/code:1] à la place du -filter

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

Plus d'informations
il y a 12 ans 10 mois #14663 par Matthew BETTON
oolusitanoo écrit:

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.

Plus d'informations
il y a 12 ans 10 mois #14664 par Matthew BETTON
Matthew BETTON écrit:


Je ne dispose pas d'environnement de tests...


Bon, je retire ce que j'ai dit :laugh:

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.

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