2017-05-06 75 views
-2

我已经包含在.csv文件AD安全组的列表的CSV列表,按以下格式:添加AD组成员AD组

 
Groups, 
Groupname1, 
Groupname2, 
Groupname3, 

我想要做的是饲料此.csv文件添加到PowerShell脚本中,因此它可以报告.csv文件中列出的组的组成员身份(我不关心递归组,因为我没有)。该脚本应该将结果转储到更多.csv文件。

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

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

你明白了。

我正在努力的是获得某种形式的循环,从.csv中查看所有组,并输出如上所示的结果(组名和用户名)。

$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

您需要将组名添加到输出中。我会用计算的属性来做到这一点。您还需要将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 
+0

这是一种享受。非常感谢! – SimonM73