2013-05-06 16 views
1

沒有價值我使用這個命令查詢AD的用戶名::

get-aduser -filter 'SamAccountName -like "trembto*" 

廣告還給我一些結果與搜索遵守。

,當我嘗試應用裏面一個是$ var這一行,我沒有得到任何結果:

$userloop = "trembto" 
get-aduser -filter 'SamAccountName -like "$($userloop)*"' 

我應該得到相同的結果,但它總是返回我什麼都沒有,沒有錯誤消息 我試過5月替代對於var部分而言是徒勞的。

感謝幫助我

回答

3

變量擴展時單引號被用來創建一個字符串不會發生。您必須使用雙引號來創建一個字符串,以便進行變量擴展。在你的情況下,你需要使用雙引號來創建過濾器字符串,並在擴展變量周圍使用單引號。

改成這樣:

$userloop = "trembto" 
get-aduser -filter "SamAccountName -like '$($userloop)*'" 

您可以通過檢查您用於濾波器參數字符串看到此行爲。

測試:

$userLoop = "trembto" 
$filter = 'SamAccountName -like "$($userLoop)*"' 

$濾波器的輸出:

SamAccountName -like "$($userLoop)*" 

更改爲:

$userLoop = "trembto" 
$filter = "SamAccountName -like '$($userLoop)*'" 

輸出:

SamAccountName -like 'trembto*' 
+0

使用get-aduser -filter $過濾器時出現錯誤: – lotirthos227 2013-05-06 16:35:23

+0

錯誤:get-aduser:解析查詢時出錯:'SamAccountName-like trembto *'錯誤信息:'語法錯誤'位置:'22'。 – lotirthos227 2013-05-06 16:36:12

+0

我的錯誤 - 你必須將右邊的引號括起來作爲過濾器參數。用正確的語法更新。 – dugas 2013-05-06 17:30:22