如何让用户关闭广告组用户是

时间:2018-05-08 19:06:31

标签: powershell active-directory

我们正试图在用户在HR数据库中设置用户时关闭所有广告组。我终止了用户帐户,但我们如何使用powershell将所有指定组中的特定用户作为我们。

3 个答案:

答案 0 :(得分:0)

您需要先检索ADUser对象,然后再从ActiveDirectory中删除它,检查其.MemberOf属性,然后使用Remove-ADGroupMember cmdlet运行这些组。

答案 1 :(得分:0)

为了让您入门,您需要获得用户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是要取消有关删除的警告。您可能希望在测试期间删除该部分

答案 2 :(得分:0)

许多人会告诉您查看用户的memberOf属性。在大多数情况下,这样做会很好。

但是,memberOf仅显示范围为' Universal'在林中的任何域上,或者“全球”#39;同一域上的组。它不会显示具有“本地域名”的群组。范围(无论域名),还是' Global'其他领域的群体。

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

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. 使用' Domain Local'基