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'は文字列内のScriptBlock定義ではなく、文字列かScriptBlockを期待しています。 '$ filter = {SamAccountName-like" $($ entry.username) "}'で十分です。その周りに引用符を入れる必要はありません –
これは、フィルタを変更しても、見ることを期待していますか? – CharlesH
ああ、私が外側の引用符を取り除くと、スクリプトで動作するSamAccountNameのような "$($ entry.username)"が得られますが、もちろん結果は出ません:) – CharlesH