【问题标题】:how to take users off ad groups user is part of如何让用户离开广告组用户是其中的一部分
【发布时间】:2018-05-08 19:06:31
【问题描述】:

当用户在 HR 数据库中被命名时,我们正在尝试将用户从所有广告组中删除。我已经确定了用户帐户的终止,但是我们如何使用 powershell 将该特定用户纳入所有分配的组中。

【问题讨论】:

  • 到目前为止您尝试了哪些方法,结果如何?

标签: powershell active-directory


【解决方案1】:

您需要在从 ActiveDirectory 中删除 ADUser 对象之前检索它,检查其 .MemberOf 属性,然后使用 Remove-ADGroupMember cmdlet 遍历这些组。

【讨论】:

    【解决方案2】:

    要开始,您需要获取用户的memberOf 和用户的distinguishedName

    在以下示例中,我通过登录名 (samaccountname) 获取用户,只要返回正确的用户,您就可以使用任何您想要的属性:

    $testUser = "Test User"
    
    $user = Get-ADUser -filter {Samaccountname -eq $testUser} -Properties memberof, distinguishedName
    $Groups = $user.MemberOf
    $DN = $user.DistinguishedName
    

    然后为了从他们当前的成员中删除用户,你可以把它放在foreach

    foreach($group in $groups)
    {
        Remove-ADGroupMember -Members $DN -Identity $group -Confirm:$false
    }
    

    -Confirm:$false 是为了抑制有关删除的警告。您可能希望在测试期间删除该部分

    【讨论】:

      【解决方案3】:

      很多人会告诉你查看用户的memberOf 属性。这在大多数情况下都可以正常工作。

      但是,memberOf 仅显示林中任何域上具有“通用”范围的组,或同一域上的“全局”组。它不会显示具有“域本地”范围(无论域)的组,也不会显示其他域上的“全局”组。

      为确保找到用户所属的所有组,您需要在林中的每个域中搜索用户所属的组:

      Import-Module ActiveDirectory
      
      $user = Get-ADUser "theuser"
      
      $domains = (Get-ADForest).Domains
      $groups = New-Object System.Collections.ArrayList
      
      foreach ($domain in $domains) {
          $groups.AddRange(@(Get-ADGroup -filter {member -eq $user.DistinguishedName} -Server $domain))
      }
      

      然后$groups 有组列表,您可以使用Remove-ADGroupMember 将用户从这些组中删除。

      同样,这仅与您相关,如果您满足以下任一条件:

      1. 您的林中有多个域,和/或
      2. 使用“域本地”组

      【讨论】:

        猜你喜欢
        • 2017-05-11
        • 2021-09-09
        • 1970-01-01
        • 2022-11-04
        • 1970-01-01
        • 2016-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多