У меня возникают проблемы со сценарием в PowerShell с использованием модуля AD.Фильтр PowerShell Active Directory
Я знаю общее правило о том, как команды 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'
Сначала я отправлял через фильтр с отдельными предложениями, как так :.
{SamAccountName -как 'ххх' "}
Однако я исправили это сейчас
Одна вещь, которая меня озадачивает, заключается в том, что я могу буквально показать результаты фильтра $, скопировать их в 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' ожидает * либо * строка или ScriptBlock - не определение ScriptBlock в строке. '$ filter = {SamAccountName -like" $ ($ entry.username) "}' достаточно, нет необходимости в котировках вокруг него –
А это значит, что даже внесение изменений вы предлагаете, это невозможно из-за того, что -Filter ожидает увидеть? – CharlesH
Ах, так что, если я заберу внешние кавычки, тогда я получаю SamAccountName-like «$ ($ entry.username)», который работает на скрипт, но, конечно, не дает мне никаких результатов :) – CharlesH