我正在尝试获取所有具有Admincount = 1属性且不属于任何内置特权组的成员。我只是不确定如何使用内置的特权组来完成这一部分。
这是我尝试过的:
Connect-QADService -Service *****.org | Out-Null
$Domains="*****.org","*****.org","*****.org","*****.org","*****.org"
foreach ($Domain in $Domains)
$Users=get-qaduser -sizelimit 0 -searchroot $Domain/ -LDAPFilter “(admincount=1)” | where-object {($_.AccountIsDisabled -eq $False) -and ($_.AllMemberOf -ne "*,CN=Builtin,*")}
没有Quest cmdlet,但应该容易假设这AllMemberOf
是一个数组。关于使用-eq
或-ne
在这种情况下的几点要点是,它们不使用通配符,而您正在将字符串与数组进行比较。关键是这不是您进行比较的方式。使用ActiveDirectory
cmdlet(如果您可以选择这样做),则可以执行此操作。
Get-ADuser -LDAPFilter "(admincount=1)" -Properties memberof | Where-Object{(($_.Memberof -join "") -notmatch "cn=builtin") -and $_.Enabled}
由于如果用户位于内置组中,就好像您将其排除在外,我们只需将所有组合并为一个大字符串并测试匹配项即可。
我也会听Mjolinor的建议。永远不要把我误会。
我注意到,AllMemberOf
由于Memberof
没有此信息,因此应该可以从其他域获得成员资格。我无法对此进行测试,但是更新您的代码将为您提供以下信息:
$Users = Get-QADUser -sizelimit 0 -searchroot $Domain/ -LDAPFilter “(admincount=1)” |
where-object {(!($_.AccountIsDisabled) -and (($_.AllMemberOf -join "") -notmatch "CN=Builtin")}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句