Npv*_*23g 5 powershell active-directory user-management organizational-unit
正如标题所说,我必须找到用户所属的所有组,并从所有组中删除其成员资格。
我试过这个:
get-adgroup -filter * | where {(Get-ADGroupMember $_ | foreach {$_.PrimarySmtpAdress}) -contains "user1@domain.com"}
Run Code Online (Sandbox Code Playgroud)
但它不返回任何东西(虽然有一些必须返回的项目)
至于删除我发现没有办法做到这一点,有人可以给我一个执行此操作的代码示例吗?
我在谈论安全组。
假设所有反向链接都到位,这是一个简单的 3 步过程,可以使用 powershell 轻松完成:
# 1. Retrieve the user in question:
$User = Get-ADUser "username" -Properties memberOf
# 2. Retrieve groups that the user is a member of
$Groups = $User.memberOf |ForEach-Object {
Get-ADGroup $_
}
# 3. Go through the groups and remove the user
$Groups |ForEach-Object { Remove-ADGroupMember -Identity $_ -Members $User }
Run Code Online (Sandbox Code Playgroud)
如果您不想手动确认删除每个组的用户,请使用-Confirm:$false:
Remove-ADGroupMember -Identity $_ -Members $User -Confirm:$false
Run Code Online (Sandbox Code Playgroud)
我是否可以补充一点,您可能希望记录您删除的每个组成员身份,只是为了便于恢复。在删除之前,将组 DN 打印到文本文件中,以识别相关用户:
$LogFilePath = "C:\BackupLocation\user_" + $User.ObjectGUID.ToString() + ".txt"
Out-File $LogFilePath -InputObject $(User.memberOf) -Encoding utf8
Run Code Online (Sandbox Code Playgroud)
这会将所有组写入文件并允许轻松可靠的回滚
| 归档时间: |
|
| 查看次数: |
14485 次 |
| 最近记录: |