【问题标题】:Remove group memberships from users who are disabled从被禁用的用户中删除组成员身份
【发布时间】:2017-03-02 17:30:56
【问题描述】:

我正在尝试编写一个脚本来查找属于 AD 中特定 OU 中一个或多个组的成员的禁用用户。然后它将删除所有禁用用户的所有组。但我想生成一个用户列表,但名称列表除外。假设我不想删除某些特定禁用用户的组。

$SearchBase = "OU=Disabled Users,DC=contoso,DC=com"
$Users = Get-ADUser -filter * -SearchBase $SearchBase -Properties MemberOf
$ExcludeUsers =@("SM_82786dfdc96642ed9","SM_516a93b689334db1a")
$Users = $Users | where-Object { $ExcludeUsers -notcontains $_.samaccountname }
ForEach($User in $Users){
$User.MemberOf | Remove-ADGroupMember -Member $User -Confirm:$false
}

错误:

Remove-ADGroupMember : Cannot validate argument on parameter 'Identity'. The argument is null. Provide a valid value for the argument, and then try running the command again.
At line:3 char:22
+     $User.MemberOf | Remove-ADGroupMember -Member $User -Confirm:$false
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Remove-ADGroupMember], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.RemoveADGroupMember

【问题讨论】:

    标签: powershell csv


    【解决方案1】:

    您似乎找到了一个没有任何组的用户(域用户不是memberof 的一部分)。使用 Where-Object 之类的东西来过滤掉空对象。例如:

    $User.MemberOf | Where-Object { $_ } | Remove-ADGroupMember -Member $User -Confirm:$false
    

    【讨论】:

    • 什么都没发生?所以没有更多的错误? Remove-ADGroupMember 不输出结果...检查用户成员资格(使用 Get-ADUser 或 AD 控制台..$user.memberof 仍然有旧值)
    • 我已经检查了用户。我仍然可以看到用户的组成员
    猜你喜欢
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 2021-06-20
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多