我在使用AD模塊的PowerShell中遇到腳本問題。Active Directory PowerShell篩選器
我知道AD命令如何接收查詢的一般經驗法則,所以我寫了這個腳本(我認爲)會符合這些準則。
$CSV=Import-Csv "c:\temp\deleteduserlist.csv"
foreach ($entry in $CSV)
{
$filter = "{SamAccountName -like ""$($entry.username)""}"
Get-ADObject -filter $filter
}
基本上,我需要能夠查詢並恢復所有已刪除用戶的但它失敗:
Error Message: 'syntax error' at position: '1'
起初我通過與單引號,像這樣的過濾器發送:
{SAM帳戶名狀 'XXX'「}
不過我已經解決了這個問題,現在
讓我困惑的一件事是,我可以從字面上顯示$ filter的結果,將它們手動複製到Get-ADObject -Filter(粘貼),並且它可以正常工作。因此,我不明白爲什麼PowerShell不喜歡它..
所有錯誤:
Get-ADObject : Error parsing query: '{SamAccountName -like "xxxx"}' Error M essage: 'syntax error' at position: '1'. At C:\temp\GetDeleted.ps1:5 char:14 + Get-ADObject <<<< -filter $filter + CategoryInfo : ParserError: (:) [Get-ADObject], ADFilterParsing Exception + FullyQualifiedErrorId : Error parsing query: '{SamAccountName -like "xxx "}' Error Message: 'syntax error' at position: '1'.,Microsoft.ActiveD irectory.Management.Commands.GetADObject
直接計入'-Filter'期待* *任意字符串或腳本塊 - 不是在字符串中的腳本塊定義。 '$ filter = {SamAccountName -like「$($ entry.username)」}'就足夠了,不需要在它周圍引用 –
好吧,這是否意味着即使進行更改,您建議這是不可能的,因爲什麼-Filter期待看到? – CharlesH
啊好吧,如果我拿走外部引號,那麼我得到SamAccountName-like「$($ entry.username)」,這對腳本起作用,但當然給我沒有結果:) – CharlesH