将AD组成员添加到AD组的CSV列表中

时间:2017-05-06 20:38:22

标签: powershell csv active-directory

我有一个包含在.csv文件中的AD安全组列表,格式如下:

Groups,
Groupname1,
Groupname2,
Groupname3,

我想要做的是将此.csv文件提供给PowerShell脚本,以便它可以报告.csv文件中列出的组的组成员身份(我不关心递归组,因为我没有任何东西)。然后,该脚本应将结果转储到另一个.csv文件。

所以,理想情况下,我希望脚本的最终.csv生成输出类似于。

Groupname1, name
Groupname1, name
Groupname2, name
Groupname2, name
Groupname3, name
Groupname3, name

你明白了。

我正在努力的是获得某种for循环,查看.csv中的所有组并输出如上所示的结果(groupname然后是用户)。

$list = Import-Csv -Path C:\temp\ADGroups.csv

foreach ($groups in $list) {
  $ADGroup = $groups.groupname

  Get-ADGroupmember -Identity $ADGroup | Get-ADUser -Property Name
  Export-Csv -Path "c:\temp\dump.csv"
} 

我已经看到了其他建议(请参阅示例here),但这些建议不会从.csv文件中读取这些组。

1 个答案:

答案 0 :(得分:1)

您需要将组名添加到输出中。我会用计算属性来做这件事。您还需要在循环外移动Export-Csv或使用-Append。如果没有,则组每次都会覆盖该文件,并且只包含最后一组的结果。试试这个:

Import-Csv -Path C:\temp\ADGroups.csv | Foreach-Object { 

    $ADGroup = $_.Groups

    Get-ADGroupmember -identity $ADGroup | Select-Objects @{n="Groupname";e={$ADGroup}}, Name
} | Export-CSV -Path  "c:\temp\dump.csv" -NoTypeInformation