2010-10-25 2 views
3

Je n'arrive pas à utiliser la variable dans la situation ci-dessous.Impossible d'utiliser une variable avec Get-User -Filter dans la console de gestion Exchange

[PS] C:\>Get-User -Filter {SamAccountName -eq "Test.Smith"} 
Name              RecipientType 
----              ------------- 
Test Smith             UserMailbox 

[PS] C:\>$SamAccountName = "Test.Smith" 
[PS] C:\>Get-User -Filter {SamAccountName -eq $SamAccountName} 
[PS] C:\>echo $SamAccountName 
Test.Smith 
[PS] C:\> 

Vous pouvez voir que la commande fonctionne correctement lorsque je tape le nom, mais pas lorsque j'utilise une variable. Merci!

Répondre

4

Je n'ai pas accès à cette cmdlet, êtes-vous sûr qu'elle prend un scriptblock et non une chaîne? Si cela prend une chaîne essayez ceci:

Get-User -Filter "SamAccountName -eq $SamAccountName" 

Si cela prend vraiment essayer de scriptblock:

Get-User -Filter {SamAccountName -eq $SamAccountName}.GetNewClosure() 
+0

Merci Keith. Je ne suis pas sûr de ce qu'il faut, mais la méthode quote a généré une erreur, et le {} .GetNewClosure() n'a fait aucune différence. J'ai copié cette ligne de l'étape 5 ici - http://technet.microsoft.com/en-us/library/bb936719%28EXCHG.80%29.aspx#NewUsrps1 – RRR

+1

Les docs disent qu'il est censé prendre une ficelle - allez comprendre . http://technet.microsoft.com/en-us/library/aa996896(EXCHG.80).aspx –

+1

Exemple deux de ces documents: 'Get-User -Filter" Titre-like '* Manager' "'. Essayez '" SamAccountName -eq '$ SamAccountName' "'. –

1

Comme on le voit dans les commentaires, ajouter des guillemets simples autour des variables, ou le résultat de votre filtre a une syntaxe incorrecte .

Get-User -Filter "SamAccountName -eq '$SamAccountName'" 

Lorsque vous transmettez des paramètres directement, vous pouvez simplement passer la variable. Mais dans ce cas, vous créez une chaîne de requête correctement formatée et les guillemets simples en font partie.

Lorsque vous obtenez une réponse complète, ne le laissez pas comme un commentaire ... créez-le comme une réponse complète.

Questions connexes