Вы получаете этот результат, потому что созданная вами структура данных выглядит следующим образом (с использованием нотации JSON):
{
"Server": {
"Hostname": [ "host1", "host2", "host3", "host4" ],
"Environment": [ "prod", "dev", "prod", "stag" ],
"IP": [ ... ]
}
}
когда вы действительно хотите что-то вроде этого:
{
"Server": [
{
"Hostname": "host1",
"Environment": "prod",
"IP": ...
},
{
"Hostname": "host2",
"Environment": "dev",
"IP": ...
},
{
"Hostname": "host3",
"Environment": "prod",
"IP": ...
},
{
"Hostname": "host4",
"Environment": "stag",
"IP": ...
}
]
}
Чтобы получить желаемый результат, вам нужно создать массив хеш-таблиц и присвоить его ключу «Сервер», или просто сделать массив $computers
, если «Сервер» в любом случае является вашим единственным ключом:
$computers = @(for ($startRow=2; $startRow -le $rowCount; $startRow++) {
...
@{
'Hostname' = $hostname
'Environment' = $environment
'IP' = $ip
}
})
Затем вы можете перечислить компьютеры следующим образом:
foreach ($computer in $computers) {
'{0}: {1}' -f $computer['Hostname', 'Environment']
}
В качестве альтернативы вы можете сделать $computers
хеш хэшей
$computers = @{}
for ($startRow=2; $startRow -le $rowCount; $startRow++) {
...
$computers[$hostname] = @{
'Environment' = $environment
'IP' = $ip
}
})
и перечислите хосты следующим образом:
foreach ($computer in $computers.GetEnumerator()) {
'{0}: {1}' -f $computer.Key, $computer.Value['Environment']
}