有没有一种方法可以将ForEach循环中的变量导出到每行的CSV输出中

时间:2019-05-31 22:38:28

标签: powershell

我正在尝试针对我们的AD运行脚本,以针对列表中的所有组吐出一个组中的AD用户。本质上是尝试审核组以找到用户。我有一个运行正常的脚本,除了无法确定一组输出何时结束以及下一组输出从何处开始。

我尝试查找以前的示例,但与我所使用的方法不完全匹配,并且我只是将脚趾浸入Powershell中,因此无法将其他示例与我自己的示例结合使用。

$groups = Get-Content "C:\Folder\File_with_lines_of_ADGroup_Names.txt" 
foreach ($group in $groups) { Get-ADGroupMember -Identity "$group" | Where-Object { $_.ObjectClass -eq "user" } | Get-ADUser -Property Description,DisplayName | Select Name,DisplayName,Description,$group | Export-csv -append -force -path "C:\Folder\File_of_outputs.csv" -NoTypeInformation }

现在,问题出在获取要导出的$ group变量以及返回的每个用户的Name,DisplayName和Description。这是我想到的标记每个用户组并将所有结果保存在单个文件中的最佳方法。但是,只有结果的第一行有效,它是CSV的HEADERS,并且其后的所有内容都列为“ Microsoft.ActiveDirectory.Management.ADPropertyValueCollection”,或者在第一组结果之后只是空白。

希望有人可以向我展示如何为找到的每个用户轻松地将变量$ group添加到输出中,以进行过滤/数据透视。

谢谢,如果您有任何疑问,请告诉我。

1 个答案:

答案 0 :(得分:2)

我相信您追求的是select语句中的计算属性。

Select Name,DisplayName,Description,$group

应该像

Select Name,DisplayName,Description,@{n='Group'; e={$group};}

另请参阅https://serverfault.com/questions/890559/powershell-calculated-properties-for-multiple-values