如何让所有Admincount = 1的用户不在内置特权组中?

时间:2014-12-11 23:10:39

标签: powershell

我试图让所有拥有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,*")}

2 个答案:

答案 0 :(得分:0)

如果您只是将它们全部更改为0,则在一小时内,AdminSDHolder进程会将所有属于受保护组成员的进程更改为1.

AdminSDHolder

答案 1 :(得分:0)

没有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")}