我有一个如下脚本:
$in_file = "C:\Data\Need-Info.csv"
$out_file = "C:\Data\Need-Info_Updated.csv"
$list = Import-Csv $in_file
ForEach ( $user in $list ) {
$zID = $user.zID
ForEach-Object { Get-QADUser -Service 'domain.local' -SearchRoot 'OU=Users,DC=domain,DC=local' -SizeLimit 75000 -LdapFilter "(&(objectCategory=person)(objectClass=user)(PersonzID=$zID))" |
Select-Object DisplayName,samAccountName,@{Name="zID";expression={$zID}} |
Export-Csv $out_file -NoTypeInformation -Force
}
}
但是,我无法获得将所有结果输出到$ out_file的信息,因为它似乎没有将数据追加到csv文件中。我尝试了许多在网上找到的东西,想法和建议。他们似乎都没有工作,我觉得我在这里很容易错过一些东西。有没有一种方法可以将数据追加到文件中?如果是这样,您可以提供一个示例或一段代码以使其以这种方式工作吗?我不是要重写所有代码或沿这些行的任何内容,而只是要求将要导出的数据附加到输出文件中。
最佳答案
将foreach循环转换为foreach对象,并将export-csv移至foreach外部对象之外,以便可以将所有对象通过管道传递到export-csv。
像这样(未经测试):
$list | ForEach {
$zID = $_.zID
ForEach-Object { Get-QADUser -Service 'domain.local' -SearchRoot 'OU=Users,DC=domain,DC=local' -SizeLimit 75000 -LdapFilter "(&(objectCategory=person)(objectClass=user)(PersonzID=$zID))" |
Select-Object DisplayName,samAccountName,@{Name="zID";expression={$zID}} |
}
} |Export-Csv $out_file -NoTypeInformation -Force
关于Powershell-导出CSV和追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9220239/