对于每个循环只将 1 行输出到 CSV?
For each loop only outputting 1 line into CSV?
我目前正在尝试 运行 一份报告,以查找我环境中所有活跃的用户以及他们为自己申请的许可证。为此,我使用了以下代码:
$Users = import-csv c:\users.csv
Foreach($User in $Users){
$UPN = $User.UserPrincipalNam
Get-MsolUser -UserPrincipalName "$UPN" | Select-Object DisplayName,Licenses | Export-Csv -Path C:\output.csv -NoTypeInformation
}
当我 运行 上面没有 Export-Csv -Path C:\output.csv -NoTypeInformation
时,我得到了我想要的预期输出信息,但是,当我 运行 使用导出选项时,我得到了 1 个用户,不是全部。
为什么会这样?
编辑:这不是建议问题的重复,-Append
解决了我的问题,因为他们的问题在没有 -Append
的情况下得到了解决
您需要将 -Append
开关添加到您的 Export-Csv
命令,以便在每次迭代期间不覆盖内容。另一种选择是将该 Export-Csv
命令移到循环之外,以便在循环完成后执行它。
选项 1:使用追加
$Users = Import-Csv c:\users.csv
Foreach($User in $Users){
$UPN = $User.UserPrincipalName
Get-MsolUser -UserPrincipalName $UPN | Select-Object DisplayName,Licenses |
Export-Csv -Path C:\output.csv -NoTypeInformation -Append
}
选项 2:循环后执行 Export-Csv
$Users = Import-Csv c:\users.csv
$MsolUsers = Foreach($User in $Users){
$UPN = $User.UserPrincipalName
Get-MsolUser -UserPrincipalName $UPN | Select-Object DisplayName,Licenses
}
$MsolUsers | Export-Csv -Path C:\output.csv -NoTypeInformation
我目前正在尝试 运行 一份报告,以查找我环境中所有活跃的用户以及他们为自己申请的许可证。为此,我使用了以下代码:
$Users = import-csv c:\users.csv
Foreach($User in $Users){
$UPN = $User.UserPrincipalNam
Get-MsolUser -UserPrincipalName "$UPN" | Select-Object DisplayName,Licenses | Export-Csv -Path C:\output.csv -NoTypeInformation
}
当我 运行 上面没有 Export-Csv -Path C:\output.csv -NoTypeInformation
时,我得到了我想要的预期输出信息,但是,当我 运行 使用导出选项时,我得到了 1 个用户,不是全部。
为什么会这样?
编辑:这不是建议问题的重复,-Append
解决了我的问题,因为他们的问题在没有 -Append
您需要将 -Append
开关添加到您的 Export-Csv
命令,以便在每次迭代期间不覆盖内容。另一种选择是将该 Export-Csv
命令移到循环之外,以便在循环完成后执行它。
选项 1:使用追加
$Users = Import-Csv c:\users.csv
Foreach($User in $Users){
$UPN = $User.UserPrincipalName
Get-MsolUser -UserPrincipalName $UPN | Select-Object DisplayName,Licenses |
Export-Csv -Path C:\output.csv -NoTypeInformation -Append
}
选项 2:循环后执行 Export-Csv
$Users = Import-Csv c:\users.csv
$MsolUsers = Foreach($User in $Users){
$UPN = $User.UserPrincipalName
Get-MsolUser -UserPrincipalName $UPN | Select-Object DisplayName,Licenses
}
$MsolUsers | Export-Csv -Path C:\output.csv -NoTypeInformation