powershell 如果用户不在OU中,则自动从组中删除用户

oprakyz7  于 2023-01-20  发布在  Shell
关注(0)|答案(1)|浏览(142)

今天早些时候,我获得了向组添加成员的帮助,如果他们不是组的成员。

$group = 'CN=Group1,OU=SomeOU,DC=domain,DC=local'
Get-ADUser -LDAPFilter "(!memberof=$group)" -SearchBase "DC=domain,DC=local" |
Add-ADPrincipalGroupMembership -MemberOf $group

现在,我想反向操作,如果成员不在我用作-SearchBase的特定OU中,则将其从组中删除。

$group = 'CN=Group1,OU=SomeOU,DC=domain,DC=local'

Get-ADGroupMember -Identity $group |
Where-Object { $_.DistinguishedName -notlike "*DC=domain,DC=local" } |
Remove-ADPrincipalGroupMembership -MemberOf $group
myzjeezk

myzjeezk1#

颠倒顺序意味着查询组的Member属性并过滤那些不包含基本DistinguishedName的DistinguishedName。-notlike可用作值集合的过滤器,因此:

$group = 'CN=Group1,OU=SomeOU,DC=domain,DC=local'
$base  = 'DC=domain,DC=local'
(Get-ADGroup $group -Properties member).member -notlike "*$base" |
    Remove-ADPrincipalGroupMembership -MemberOf $group

相关问题