从 AD 组中获取特定的 AD 用户
Get Specific AD Users from AD Group
我需要从 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
结尾的用户,但我不知道该怎么做。
你能帮帮我吗?
Get-ADGroupMember 可以 return 类型为 'user'、'group' 或 'computer' 的对象,因此将 returned 对象直接通过管道传递到Get-ADUser
如果其中一个对象不是用户,可能会给您带来麻烦。
话虽如此,从 Get-ADGroupMember
编辑的对象 return 已经包含您要查找的 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' -NoTypeInformation
我需要从 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
结尾的用户,但我不知道该怎么做。
你能帮帮我吗?
Get-ADGroupMember 可以 return 类型为 'user'、'group' 或 'computer' 的对象,因此将 returned 对象直接通过管道传递到Get-ADUser
如果其中一个对象不是用户,可能会给您带来麻烦。
话虽如此,从 Get-ADGroupMember
编辑的对象 return 已经包含您要查找的 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' -NoTypeInformation