You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell导出嵌套多值属性数组到CSV文件问题求解

问题原因

你之前的代码直接对IpAddresses数组执行-join操作时,数组内存储的是嵌套的自定义对象而非普通字符串,PowerShell默认调用对象的ToString()方法无法返回有效属性值,最终只会得到无内容的分隔符。

方案1:单主机对应单行,IP信息合并到同一单元格

如果需要保留每行对应一台设备的结构,可以在计算属性中先遍历嵌套对象拼接属性值,再做合并:

$machines | Select-Object computerDnsName, 
    @{
        name = "ipAddresses"
        expression = {
            # 遍历每个嵌套IP对象,按需拼接属性
            $_.IpAddresses | ForEach-Object {
                "IP:$($_.ipAddress);MAC:$($_.macAddress);状态:$($_.operationalStatus)"
            } -join "||" # 用和内部属性不同的分隔符区分不同IP条目,方便后续拆分
        }
    } | Export-Csv -Path "filename.csv" -NoTypeInformation -Encoding UTF8

方案2:每个IP条目单独占一行

如果需要后续对IP、MAC等字段做筛选统计,更推荐展开嵌套数组,每个IP生成单独的行,结构化程度更高:

$machines | ForEach-Object {
    $dnsName = $_.computerDnsName
    # 遍历当前设备的每个IP对象,单独生成行
    $_.IpAddresses | ForEach-Object {
        [PSCustomObject]@{
            computerDnsName = $dnsName
            ipAddress = $_.ipAddress
            macAddress = $_.macAddress
            type = $_.type
            operationalStatus = $_.operationalStatus
        }
    }
} | Export-Csv -Path "filename_split.csv" -NoTypeInformation -Encoding UTF8

内容的提问来源于stack exchange,提问作者Planet-9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 07:21:03