cha*_*zjo 3 powershell active-directory
我是 AD 和 Powershell 的新手,所以如果我使用了错误的术语,请原谅我。
我有一系列名为“ABC-something”的 50 多个 Active Directory 组。每个活跃用户都需要完全属于一个组。用户也是用于不同目的的其他组的成员,不应影响此练习。
由于我们正处于重大举措之中,我的人口是一个不断变化的目标。我正在处理大约 1000 个用户,因此导出所有用户的所有成员资格并不理想。
我希望能够编写一个脚本,该脚本将返回属于多个 ABC* 组的每个用户的用户 ID(或 samAccountName),我可以按需运行。(我假设编写一个脚本来查找不在组中的活动 AD 用户是一个完全不同的问题。)
戴上我的数据库帽子,我看到的逻辑如下:
1) 遍历所有名为 ABC* 的组。对于每个人,捕获所有组成员。我应该在内存中得到一个表或对象看起来像
Group1 PersonA
Group1 PersonB
Group2 PersonB
2)找到一种方法来对这个列表进行分组、计数或迭代。
这就是我卡住的地方,因为到目前为止我看到的 Powershell 示例在导出或显示数据之前并没有对数据进行太多操作。
您能否建议一个示例脚本来帮助我入门,或者至少指向有关在 Powershell 中操作数据的在线资源?
UsingGet-ADUser -Filter * -Properties memberOf获取所有用户的列表,以及他们所属的组。
您可以将其导入 foreach 或 where-object 并应用任何所需的标准。如果您想知道用户是否在 foo 和 bar 中,您可以运行这样的命令。
Get-ADUser -Filter * -Properties memberOf | `
Where-Object {
$_.memberof.contains('CN=foo,OU=allsites,DC=example,DC=org') -and `
$_.memberof.contains('CN=bar,OU=allsites,DC=example,DC=org' )
}
Run Code Online (Sandbox Code Playgroud)
或者假设您只想知道至少 7 个组中有多少人?
Get-ADUser -Filter * -Properties memberOf | `
Where-Object {$_.memberof.count -ge 7}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16324 次 |
| 最近记录: |