不知道这是否可能,但我试图比较ADgroup对象和PSCustomObject对象的属性。我们正在进行用户审计,这需要根据我们的活动AD用户帐户以及AD组成员身份验证活动员工的列表。这里是什么,我至今一个基本的细分:在PowerShell中比较不同对象的最佳方法
(我们定义两个独立的搜索路径,因为我们集团在不同的OU)
- $ mainGroups = GET-广告组的筛选器* -SearchBase“ OU_here”
- $亚组= GET-广告组过滤器* -SearchBase '从人力资源系统用户名Different_OU_here'
列表
- $ sourceUsers =获取内容-path 'C:\ TEMP \ users.txt' 从公元
- $ ADUserName = GET-ADUser便有型滤波器* -SearchBase“用户名
名单User_OU '--searchscope子树|选择-ExpandProperty Sam帐户
空数组来存储自定义对象/属性
- $ userObjEQ = @()
比较HR到AD
$ compareResults = compare-object -referenceobject $ sourceUsers -differenceObject $ ADUserName
所有匹配的用户查找组成员,创建自定义对象等
foreach ($result in $compareResults) { if ($result.SideIndicator -eq '==') { $groupMem = get-adprincipalgroupmembership -identity $result.InputObject } $userObjEQ += [pscustomobject] @{ 'UserName' = $result.InputObject 'Groups' = $groupMem.Name } }
从这以后,我想每个组从$ mainGroups每个匹配的用户组名称比较这点看看是否有匹配。如果没有,则将其与$ subGroups组名称进行比较。如果匹配无效,如果不匹配,则输出用户名和任何不匹配的组名。只是不确定如何最好地比较这些对象。任何提示将不胜感激。
所以你有一个用户列表。 你想获得每个用户所在的ADGroup? – ArcSet
@ArcSet不抱歉,我有我们人力资源部门的活跃用户列表。我已将该列表中的用户名存储到sourceUsers变量中。然后我从活跃的AD用户手中获取用户名列表。我比较这两个列表并仅提取匹配的用户名。 我从那里做的是抓取每个匹配用户所属的所有组的列表。 我现在想要做的是找出如何比较每个匹配用户的组与$ mainGroups和$ subGroups OU中找到的组。对不起,如果我没有解释得好。 –