我得到了一个包含服务器信息的JSON文件,并试图将输出连接到一个输出中。
这是我得到的输出:
服务器名称 | 操作系统 | 服务 | IP|
---|---|---|---|
DC01 | Windows Server 2016 | 域控制器 | 10.2.0.4 |
WEB01 | Windows Server 2016 | Web服务器 | 10.3.0.100[/tr>|
WEB01 | Windows Server 2016 | Web服务器 | 10.3.0.101
一个简化的例子:
@'
[
{
"Server Name": "DC01",
"Operating System": "Windows Server 2016",
"Service": "Domain Controller",
"IPs": [
{
"IP": "10.2.0.4"
}
]
},
{
"Server Name": "WEB01",
"Operating System": "Windows Server 2016",
"Service": "Web Server",
"IPs": [
{
"IP": "10.3.0.100"
},
{
"IP": "10.3.0.101"
}
]
}
]
'@ | ConvertFrom-Json |
ForEach-Object {
$_.IPs = $_.IPs.IP -join ', '
$_ # Output the modified object.
} |
ConvertTo-Csv # Replace this with your Export-Csv call
以上收益率:
"Server Name","Operating System","Service","IPs"
"DC01","Windows Server 2016","Domain Controller","10.2.0.4"
"WEB01","Windows Server 2016","Web Server","10.3.0.100, 10.3.0.101"
由于您不更改属性的名称和数量,因此可以直接修改
ConvertFrom-Json
将JSON解析为的每个输入对象。$_.IPs.Ip
使用成员访问枚举来提取存储在$_.IPs
中的对象数组中包含的所有IP地址,然后将这些地址与', '
连接以形成单个字符串,并将其分配回.IPs
属性。