【问题标题】:-eq and -ne give me the same results-eq 和 -ne 给我相同的结果
【发布时间】:2012-11-15 14:34:14
【问题描述】:

为什么下面两个命令,唯一的区别是 -eq 和 -ne 操作符给我我的 DC 列表?

Get-ADComputer -Filter {(operatingsystem -like "*server*") -AND 
(PrimaryGroup -eq "CN=Domain Controllers,CN=Users,DC=domain,DC=com") } 
-Property Name,PrimaryGroup

我希望这个拥有一切,但域控制器除外。

Get-ADComputer -Filter {(operatingsystem -like "*server*") -AND 
(PrimaryGroup -ne "CN=Domain Controllers,CN=Users,DC=domain,DC=com") } 
-Property Name,PrimaryGroup

如果我针对 PrimaryGroupID 而不是 PrimaryGroup 运行等效项,它会按预期工作。

【问题讨论】:

    标签: powershell active-directory powershell-2.0 domaincontroller


    【解决方案1】:

    我在尝试这两个命令时实际上得到了一个错误。做了一点挖掘,过滤器导致了问题。快速浏览了服务器对象的 ADSIEdit。它似乎没有名为“PrimaryGroup”的属性。

    这是在 2008 R2 AD 中运行的 2008 R2 林和域功能级别。

    顺便说一句,如果您想要域中的 DC 列表,get-ADDomainController 将完成这项工作。

    问候 阿卡斯

    【讨论】:

    • 我实际上想要除 DC 之外的所有服务器。在我正在处理的域上的命令输出中,它列出了 PrimaryGroup,所以我应该能够过滤它,不是吗?
    • @flickerfly 你能在你的OP中添加你如何列出'PrimaryGroup'属性吗?在 ActiveDirectory 架构中它不存在。
    【解决方案2】:

    如果要将一个语句放在不同的行中,则需要在行尾放置反引号 (`) 以告诉 PowerShell 该语句在下一行继续。但是,即使那样,您也不能在两条不同的行上拆分过滤器。所以它应该看起来像这样:

    Get-ADComputer -Filter {(operatingsystem -like "*server*") -AND (PrimaryGroup -eq "CN=Domain Controllers,CN=Users,DC=example,DC=com") } `
        -Property Name,PrimaryGroup
    

    如您所见,AD 实际上没有名为PrimaryGroup 的属性。这是 PowerShell 向您公开的属性,它会为您解释 primaryGroupId 属性中的值。

    任何对象的primaryGroupId 属性都具有组的相对标识符 (RID)。 RID 是 SID 中数字的最后一部分,但该组也将此值存储在其primaryGroupToken 属性中。所以你可以像这样得到这个值:

    $primaryGroupToken = (Get-ADGroup "Domain Controllers" -Properties primaryGroupToken).primaryGroupToken
    

    PowerShell 必须将您传递给 -Filter 参数的内容转换为正确的 LDAP 查询,因此当您在过滤器中使用 PrimaryGroup 时,PowerShell 会为您执行此操作。

    但是,在这种情况下,进行查找并不是必需的,因为 Domain Controllers group 是一个内置组,并且始终具有 516 的 RID。所以你可以像这样做你想做的事情:

    Get-ADComputer -Filter "operatingsystem -like '*server*' -AND PrimaryGroupId -eq 516" `
        -Property Name,PrimaryGroup
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 2019-06-15
      • 2013-03-24
      • 2021-09-04
      • 1970-01-01
      相关资源
      最近更新 更多