有人可以向我解释为什么这不起作用吗?
Import-Module ActiveDirectory
$dcs = Get-ADComputer -Filter {DistinguishedName -Like "*Domain Controllers*"}
我没有得到该查询的任何结果。
或者,有人可以建议一种使用上述模块的方法,我可以在我的域中生成一个不是域控制器的系统列表(这是我最终想要实现的)。
干杯
答案1
在我看来,这似乎是个错误。-like 运算符不适用于所有属性。它不适用于 DistinguishedName、SID、ObjectClass,但适用于 Name、DSNHostName、SamAccountName...
以下命令将为您提供所有域控制器:
PS C:> Get-ADComputer -SearchBase“OU =域控制器,DC =测试,DC =本地”-过滤器*
此命令将为您提供所有非域控制器的计算机:
PS C:> Get-ADComputer -LDAPfilter“(&(objectCategory=Computer)(!userAccountControl:1.2.840.113556.1.4.803:=8192))”
答案2
由于当您提升服务器时,所有域控制器都应位于 AD 中的“域控制器”OU 中,因此,为什么不尝试:
$dcs = Get-ADComputer -SearchRoot "MYDOMAIN/Domain Controllers" -SearchScope onelevel
我认为这就是您上面尝试做的事情。还请注意,这不是查找域控制器的明确方法。理想情况下,您应该按成员类型进行搜索。
$dcs = get-ADComputer -SearchRoot "MYDOMAIN" -SearchScope subtree -filter {ComputerRole -eq "DomainController" }
这应该可以找到任何任性的 DC :)
顺便说一句,我花了 30 分钟尝试安装 AD 模块,但没有成功 - 它显然是“2008 R2 中的新功能”,如果你手边没有 2008R2 机器的话,这完全就是 PITA :) 我已经使用 Quest AD 管理工具来设计答案 - 参数是相同的...