我目前正在进行一些广告清理,并且有一个大约 5000 个用户的列表,需要从两个 OU 中删除这些用户。每个 OU 包含 150+ 个组,用户可以是一个或多个组的成员。
我生成了两个 CSV:
List-of-users.csv
list-of-groups.csv
我正在尝试什么:
$Us = import-csv List-of-users.csv
$Gs = import-csv list-of-groups.csv
ForEach($U in $US) {
Remove-ADGroupMember -Identity $U -MemberOf $Gs
}
我试图做的是让两个列表与每个用户进行比较,这样任何用户都不会在任何组中。
每当我运行它时-WhatIf
显示它正在组上执行"设置",但不会进行任何更改。
您可以尝试这样的事情,我相信您可以删除所有用户的列表,但我不确定如果用户尚未加入该组会发生什么。但这应该奏效,
$Us = import-csv List-of-users.csv
$Gs = import-csv list-of-groups.csv
ForEach($group in $Gs) {
ForEach($user in $Us) {
Remove-ADGroupMember -Identity $group -Members $user -ErrorAction SilentlyContinue
}
}