从特定AD组导出AD成员

  • 本文关键字:AD 成员 powershell
  • 更新时间 :
  • 英文 :


我想从大约600个以特定字符串结尾的AD组中检索SamAccountName。

例如:

AD Groups:
AAA-BBB-XXX
CCC-DDD-XXX
EEE-FFF-XXX

现在,我想获得所有以XXX结尾的AD组的SamAccountName,以及SamAccountName和AD组之间的关系,以便我知道它们属于哪个AD组。因此:

SamAccountName | AD GROUP
------------------------------
Bernie.Sanders | AAA-BBB-XXX
Donald.Trump  | AAA-BBB-XXX
Barack.Obama  | AAA-BBB-XXX
Joe.Biden     | CCC-DDD-XXX

我已经使用-like和-filter运算符成功地将所有XXX AD组导出到.csv。我已经使用Get-ADGroupMember和-identity运算符成功导出了所有SamAccountName。

但是,我还不能创建上面的列表,因为我是一个PS新手。我正在寻找一些"在哪里"的声明,需要一些指导。

感谢

为此,您可以使用计算属性Select-Object来组合;AD Group Members";用";AD组名称";。为了筛选与您的条件匹配的组,在这种情况下,以XXX结尾,您可以使用Get-ADGroupcmdlet中的-LDAPFilter-Filter

$filter = "(samAccountName=*XXX)" # => Ends with XXX
$result = foreach($group in Get-ADGroup -LDAPFilter $filter)
{
# Here all groups ending with XXX are being enumerated
Get-ADGroupMember $group | Select-Object @{
Name = 'ADGroup'
Expression = { $group.samAccountName }
}, samAccountName, ObjectClass
}
$result | Export-Csv .... 

请注意,AD组可以有成员,而不仅仅是用户,如果您希望组成员的类为";用户";您可以添加Where-Object.Where()方法:

Get-ADGroupMember $group |
Where-Object { $_.ObjectClass -eq 'user' } |
Select-Object ....
(Get-ADGroupMember $group).Where({
$_.ObjectClass -eq 'user'
}) | Select-Object ....

最新更新