如何解决如何从特定 OU 的用户列表中获取组的特定部分并将其放入表中?
正如标题所说,我需要获取用户组的组名的特定部分。
是的,Get-ADPrincipalGroupMembership
允许获取用户组。但它返回所有用户的组(虽然我想得到一个确切的组),据我所知,只返回一个确切的用户。
所以我有三个 OU。每个 OU 都有用户。每个用户都是几个组的成员,但我需要为每个用户获取一个具有标准名称的组。标准名称是 department - X
,其中 X 部分特定于每个用户。因此,在结果中,我想要一个表格,其中包含 Name、SamAccountName 和 X 部分的组。 >
因此,我需要:
- 从确切的 OU 获取用户及其组列表;
- 从所有用户及其组的列表中,我需要获取每个用户具有标准名称的组。标准名称为
department - X
,其中X部分是针对每个用户的,一个用户可以有多个具有标准名称的组; - 对于每个用户,我需要从具有标准名称的组中获取 X 部分。
解决方法
我会尝试这样的事情:
-
这会获取给定 OU 中的所有用户及其成员资格。 memberOf 属性的值是作为字符串的组的 DN,因此类似于 Get-ADUser -filter * -SearchBase "OU=OU1,OU=OU2,OU=OU3,DC=domain,DC=local" -Properties memberOf | % { [PSCustomObject]@{ Name = $_.Name; SamAccountName = $_.SamAccountName; Groups = ($_.MemberOf | ? { $_ -match "department" } | % { $_.Split(',')[0].Split('=')[1].Replace("department - ","") }) -join "," } }
。其中,它只选择与 department 匹配的条目,并用逗号和等号分割 DN 以获得 CN 部分(应与组名称匹配)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。