2013-05-14 61 views
0

這裏是我的代碼: 我嘗試在函數中構建一個過濾器字符串,並使用它並使用get-adobject命令,但是我得到一個語法錯誤的位置1Powershell - 語法錯誤 - 將字符串從函數粘貼到「-Filter」

function build-filter ([string]$searchName) 
{ 
$searchName = '"' + $searchName + '"' 
$searchName = "{name -like " + $searchName + "}" 
return [string]$searchName 
} 

$searchname = "user1" 

$filter = build-filter $searchname 

Get-ADObject -Filter $filter 

這是錯誤的消息,可惜的是,在德國

Get-ADObject : Fehler beim Analysieren der Abfrage: "{name -like "user1"}" Fehlermeldung: "syntax error" an folgender Position: "1". In Zeile:12 Zeichen:1 + Get-ADObject -Filter $filter + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ParserError: (:) [Get-ADObject], ADFilterParsingException + FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADFilterParsingEx ception,Microsoft.ActiveDirectory.Management.Commands.GetADObject

我究竟做錯了什麼? 我誤解了一些概念嗎?

+0

如果你翻譯的錯誤消息,它可以幫助。儘管我在學校學習德語,但對於理解上述內容還遠遠不夠。 – Neolisk 2013-05-14 14:23:11

+0

試試這個'$ searchName =「{name-like $ searchName}」' – ProfessionalAmateur 2013-05-14 14:31:46

+0

不幸的是,這沒有奏效。但省略了大括號有助於建議由C.B. 感謝 – Anduin 2013-05-15 11:40:52

回答

1

嘗試改變這一點:

$searchName = "{name -like " + $searchName + "}" 

$searchName = "name -like $searchName" 
+0

第二個建議的工作原理:$ searchName =「name-like $ searchName」 我猜「{」是產生錯誤的那個。 – Anduin 2013-05-15 11:40:26