Я был бы признателен за помощь в преобразовании некоторых данных с PowerShell, и я понятия не имею, с чего начать.
Мои данные CSV выглядит так:
System Name | Key | Value
S1 | cpu | Xeon ...
S1 | cores | 8
S1 | cpu | Xeon ...
S1 | cores | 8
S1 | RAM1 | 8
S1 | RAM2 | 8
...
S2 | cpu | Xeon ...
Что мне нужно, чтобысоздайте таблицу, которая выглядит следующим образом:
System Name | CPUType | CPUs | Cores
S1 | Xeon .. | 2 | 16
S2 | Xeon .. | 1 | 4
Я попробовал вот что:
$csvPath = "C:\Users\rene\Desktop\Report_Machine_Hardware.csv"
$csv = Import-Csv $csvPath | Group-Object machineName
$hash = @{}
foreach ($obj in $csv) {
# Werte pro Server
$cpuCores = 0
$cpus = 0
$cputype = ""
#$obj | fl
foreach ($grp in $obj.Group)
{
#$grp | fl
if ($grp.attributeName -eq "NumberOfCores")
{
$cpuCores = $cpuCores + [int]$grp.attributeValue
#write-host $grp.attributeValue
}
if ($grp.attributeName -eq "ProcessorId")
{
$cpus++
}
if ($grp.attributeName -eq "Name")
{
$cputype = $grp.attributeValue
}
}
#Write-Host "Host $($grp.machineName) hat $cpus CPUs mit $cpuCores CPU Cores vom Typ $cputype"
$out = @($grp.machineName,$cputype,$cpus,$cpuCores)
$hash.Add($grp.machineName,$out)
}
Export-CSV C:\temp\test.csv -InputObject $hash -NoTypeInformation
Для каждой системы я получаю массив с именем системы и моими значениями, но теперь мне нужноприведите каждый отдельный массив в форму списка с заголовком, чтобы снова экспортировать его в csv.Последние 4 строки не работают по мере необходимости.Скорее всего, есть простой способ сделать это, но я думаю, что сейчас у меня есть какой-то ментальный блок.Кто-нибудь может мне помочь, пожалуйста.
С уважением, Рене