为什么不支持受支持的操作员



为什么PowerShell说不支持受支持的操作员?

i具有以下(简化的)代码,其中包含一个对案例敏感的非平等运算符:

$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) - 和((fivenname -cne $ fivenname)'错误消息)'错误消息:'操作员不支持:-cne'在位置:'-cne'在位置:''50'。 在microsoft.activedirectory.management.squeryparser.yyparse()上 在Microsoft.Activedirectory.Management.Management.Cereparser..ctor(字符串查询,variable expressionConverter varexpressionconverter,ConvertsearchFilterDelegate searchFilterConverterDelegate)) 在Microsoft.activedirectory.management.commands.AdgetCmdletBase`3.beginProcessingOverride()

当我从cne中删除c时,查询会成功。

不幸的是,并非所有运算符都由PowerShell的过滤器参数支持。您的过滤器将/确实可以使用|其中()语句(在我的本地系统上使用)。

PowerShell过滤器支持列表(列出了" NE"作为选项)

这是Get-ADUser滤波器参数的限制,而不是PowerShell的限制。试试-ne。

最新更新