1

サポートされている演算子がサポートされていないとPowershellが言うのはなぜですか?

大文字と小文字を区別する等しくない演算子を含む次の(簡略化された)コードがあります。

$filter_accountchanged = { (sAMAccountName -eq $username) -and (GivenName -cne $givenname) }
try {
        if (Get-ADUser -filter $filter_accountchanged) { # update aduser }
catch {
        Write-host $_.Exception

どのような状況で、これにより次のエラーが発生する可能性がありますか?

Microsoft.ActiveDirectory.Management.ADFilterParsingException:クエリの解析エラー:'(sAMAccountName -eq $ username)-and((GivenName -cne $ givename))'エラーメッセージ:'Operator Not supported:-cne' at position:'50'。Microsoft.ActiveDirectory.Management.QueryParser.yyparse()at Microsoft.ActiveDirectory.Management.QueryParser..ctor(String query、VariableExpressionConverter varExpressionConverter、ConvertSearchFilterDelegate searchFilterConverterDelegate)at Microsoft.ActiveDirectory.Management.Commands.ADGetCmdletBase`3.BeginProcessingOverride()

cfromを削除すると、クエリは成功しますcne

4

2 に答える 2

2

残念ながら、すべての演算子がPowershellのフィルターパラメーターでサポートされているわけではありません。フィルタは|で機能します/機能します Where()ステートメント(私のローカルシステムで実行されました)。

2011年のPowerShellフィルターサポートリスト(オプションとして「ne」がリストされています)

于 2012-10-22T14:23:30.060 に答える
0

これはGet-ADUserFilterパラメーターの制限であり、特にPowerShellの制限ではありません。代わりに-neを試してください。

于 2012-10-22T14:46:56.503 に答える