Powershell 如何让用户脱离广告组用户是其中的一部分
当用户在人力资源数据库中被命名时,我们正试图将用户从所有广告组中删除。我已经解决了用户帐户的终止问题,但是我们如何使用powershell将该特定用户作为我们所有分配组的成员。在从ActiveDirectory中删除Powershell 如何让用户脱离广告组用户是其中的一部分,powershell,active-directory,Powershell,Active Directory,当用户在人力资源数据库中被命名时,我们正试图将用户从所有广告组中删除。我已经解决了用户帐户的终止问题,但是我们如何使用powershell将该特定用户作为我们所有分配组的成员。在从ActiveDirectory中删除ADUser对象之前,请检查其.MemberOf属性,然后使用Remove-ADGroupMembercmdlet运行这些组。要开始,您需要获取用户的memberOf和用户的DiscrimitedName 在下面的示例中,我通过用户的登录名(samaccountname)获取用户。只
ADUser
对象之前,请检查其.MemberOf
属性,然后使用Remove-ADGroupMember
cmdlet运行这些组。要开始,您需要获取用户的memberOf
和用户的DiscrimitedName
在下面的示例中,我通过用户的登录名(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
用于抑制有关删除的警告。您可能希望在测试过程中删除该部分,许多人会告诉您查看用户的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
将用户从这些组中删除
同样,这仅与您相关,如果您:
到目前为止你做了哪些尝试,结果如何?