如何解决尝试查找部门中的所有用户,并比较其广告组
我试图找到一个部门中的所有用户,并比较他们的广告组,以查看是否有共同的广告组。
我对编写这种脚本有点陌生-希望您能为我提供帮助。
import-module activedirectory
$afd = "Wright the name of the department you want to compair"
$users = get-ADUser -Filter * -Properties department | Where-Object { $_.department -Like "$afd*" } | Select sAMAccountName,department
$users | Sort-Object -Property department | select samaccountname
ForEach ($user in $users)
{
}
这是我遇到的麻烦,直到排序列表,我想查看所有不同部门中的所有广告组并进行比较。
有人有想法或提示让我再去吗?
关于Simeon
解决方法
一种可能更慢但更简单的方法是利用Get-ADPrincipalGroupMembership。
ForEach ($user in $users)
{
$UserGroups = (Get-ADPrincipalGroupMembership $user.SamAccountName).Name
[pscustomobject]@{
User = $user.SamAccountName
GroupsList = $UserGroups # Keeping Groups as a collection
GroupsString = $UserGroups -join ';' # Delimited (;) string of the groups
}
如果使用用户对象的memberOf
属性,则将已经有一个组列表(仅可分辨名称作为字符串)。但是,稍后在代码中使用它可能会比较困难,因为这些值只会是字符串。
$users = get-ADUser -Filter * -Properties department,memberOf |
Where-Object { $_.department -Like "$afd*" } |
Select sAMAccountName,department,memberOf
在任何一种情况下,将属性值存储为数组非常适合稍后在代码中访问这些值。因为例如$user.memberOf
会为您枚举所有组DN字符串。但是,由于属性值应为单个字符串,因此无法导出为CSV。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。