【问题标题】:Powershell: remove a list of users from an OUPowershell:从 OU 中删除用户列表
【发布时间】:2020-01-10 22:58:29
【问题描述】:

我目前正在做一些 AD 清理工作,并列出了需要从两个 OU 中删除的大约 5000 个用户。每个 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 显示它正在对组执行“设置”,但不会进行任何更改。

【问题讨论】:

  • -identity 采用组名。 -members 接受一个用户数组。
  • OU(组织单位)不是广告组。 Understand the Difference Between AD OUs and Groups
  • 您能否提供一个示例场景来扩展您正在尝试做的事情
  • 我将每周审核我们终止的 OU 的场景。在那个 OU 中,几个用户没有被正确终止,他们的帐户仍将包含在分发列表中。鉴于大量用户和大量列表,我想从 lit if 组中删除很多人。
  • 从所有组成员中删除用户有什么危害? stackoverflow.com/a/44144890/1390548

标签: powershell csv active-directory data-cleaning


【解决方案1】:

你可以尝试这样的事情,我相信你可以删除所有用户的列表,但我不确定如果用户还不是组的一部分会发生什么。但这应该可以解决,

$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
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    相关资源
    最近更新 更多