如何将PSCustomObject的License多成员输出为CSV单单元格多行格式?
编辑补充
我认为找到了更优的实现方式,希望能帮到大家:
![优化后输出格式示例]
使用代码
$licenseSearchTerm = 'dyn' $arrayResults = @() foreach ($userWithLicense in $usersWithLicense[333..384]) { $userLicenses = $userWithLicense | Get-AzureADUserLicenseDetail if ( $userLicenses | Where-Object { $_.SkuPartNumber -match $licenseSearchTerm } ) { $results = [PSCustomObject]@{ User = $userWithLicense.UserPrincipalName License = $userLicenses.SkuPartNumber | Select-Object -First 1 } $arrayResults += $results $userLicenses[1..$userLicenses.Count] | ForEach-Object { $results = [PSCustomObject]@{ License= $_.SkuPartNumber } $arrayResults += $results } } }
原问题
以下代码导出Azure AD用户许可证到CSV文件时,输出格式不符合需求:
$licenseSearchTerm = 'license' $arrayResults = @() foreach ($userWithLicense in $usersWithLicense[383..384]) { $userLicenses = $userWithLicense | Get-AzureADUserLicenseDetail if ( $userLicenses | Where-Object { $_.SkuPartNumber -match $licenseSearchTerm } ) { $results = [PSCustomObject]@{ User = $userWithLicense.UserPrincipalName License = $userLicenses.SkuPartNumber } $arrayResults += $results } } # $arrayResults | ConvertTo-Csv -NoTypeInformation $arrayResults | Export-Csv -Path $env:USERPROFILE\Desktop\licenses.csv -NoTypeInformation
当前导出的CSV显示如下:
![当前CSV输出格式示例]
期望实现如下格式的输出:
![期望CSV输出格式示例]
$userLicenses.SkuPartNumber对象包含多个成员,控制台中每行显示一个成员。尝试$userLicenses.SkuPartNumber -join ', '和$userLicenses.SkuPartNumber -join [Environment]::NewLine均无法达到预期效果,请问如何实现目标格式?
内容的提问来源于stack exchange,提问作者colonel_claypoo
相关产品推荐
相关产品推荐

