我需要从Active Directory中的特定组中获取特定用户。
到目前为止,我有这样的想法:
$Groupnames = get-adgroup -Filter "name -like '$Groupfilter'" -Properties * -SearchBase $Grouppath |
Select-Object Name, @{
Name='Username';
Expression={
Get-ADGroupMember -identity $($_.Name) -Recursive |
Get-ADUser -Property SamAccountName |
Select -ExpandProperty SamAccountName
}
}这样就可以获得具有其名称的组。现在,我想要获取这些组中的所有用户。除了格式化之外,什么都能起作用。我想要的是:
Name Username
---- --------
Group1 user1adm
Group2 {user1adm, user1, user2, user2adm...}
Group3 {user1adm, user3, user2adm, user6...}但我得到的是:
{user1adm, user1, user2, user2adm...}使用这种格式,我无法看到所有用户。
我最后的目标也是排除以adm结尾的用户,但我不知道如何做到这一点。
你能帮帮我吗?
发布于 2021-02-19 23:56:16
Get-ADGroupMember可以返回类型为' user‘、'group’或'computer‘的对象,因此如果其中一个对象不是用户,则通过管道将返回的对象直接传递给Get-ADUser可能会给您带来麻烦。
话虽如此,从Get-ADGroupMember返回的对象已经包含了您想要的SamAccountName属性,因此您可以从代码中删除Get-ADUser。
$Groupnames = Get-ADGroup -Filter "name -like '$Groupfilter'" -SearchBase $Grouppath |
Select-Object Name,
@{Name = 'Username'; Expression = {
($_ | Get-ADGroupMember -Recursive |
Select-Object -ExpandProperty SamAccountName |
Where-Object { $_ -notmatch 'adm$' }
) -join ', '
}
}
# output the result on screen
$Groupnames | Format-Table -AutoSize
# output to CSV file
$Groupnames | Export-Csv -Path 'Path\To\The\GroupMembers.csv' -NoTypeInformationhttps://stackoverflow.com/questions/66275706
复制相似问题