У меня есть два фрагмента кода, которые я хочу объединить в один массив для экспорта в CSV-файл. Цель состоит в том, чтобы я сначала получил информацию с рабочего стола (получение make, model, serial, ...), которую яположить в массив, как это:
$outputArray = @()
foreach($computer in $Desktop){
$output = [Ordered]@{
"Merk" = $Desktop.CsManufacturer
"Model" = $Desktop.CsModel
"S/n" = $Desktop.BiosSeralNumer
}
$outputArray += New-Object PSObject -Property $output
}
Второй момент заключается в том, что я хочу получить всю информацию о мониторе с подключенных мониторов на мое устройство:
$outputArrayMon = @()
Write-host
ForEach ($Monitor in $Monitors)
{
$Manufacturer = ($Monitor.ManufacturerName -notmatch 0 | ForEach{[char]$_}) -join ""
$Name = ($Monitor.UserFriendlyName | ForEach{[char]$_}) -join ""
$Serial = ($Monitor.SerialNumberID -notmatch 0 | ForEach{[char]$_}) -join ""
$output = [Ordered]@{
"Merk /Model" = $Manufacturer
"Type" = $Name
"S/n" = $Serial
}
$outputArrayMon += New-Object PSObject -Property $output
}
Я пытаюсь объединить ихвот так и экспортируйте его в CSV-файл
$outputArrayRES = $outputArray + $outputArrayMon
$outputArrayRES | Export-Csv -Path $GL\info.csv -NoTypeInformation
Когда я экспортирую в текстовый файл, мои результаты очень нормальные и четкие, но я не могу понять, как заставить его работать в CSV-файле,Вот пример моего вывода в CSV-файл (есть больше выходных данных, но это просто сделать пост немного чище):
![csv output](https://i.stack.imgur.com/UriFm.png)
проблема в том, что я даже не получаю некоторые значения в CSV-файле правильно, которые я получаю в текстовом файле.
То, как я хочу, чтобы это работало, заключается в том, что каждое значение должно быть на одной строке вCSV файлвместо 4 отдельных строк я хочу 2 1 = переменные и 2 = значения переменных
EDIT (1):
Странные значения монитора в моем выходном файле
";""
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;
РЕДАКТИРОВАТЬ (2):
[PSCustomObject]@{
"Merk" = $Desktop.CsManufacturer
"Model" = $Desktop.CsModel
"S/n" = $Desktop.BiosSeralNumer
"PC Naam" = $Desktop.CsName
"CPU" = $processor.Name
"Memory" = "$RAM GB"
"OS" = $Desktop.WindowsProductName
"MAC LAN" = $MACLAN
"MAC WIFI" = $MACWIFI
"Office" = $officeVersion
"Merk /Model" = ($Monitor.ManufacturerName -notmatch 0 | ForEach-Object{[char]$_}) -join ""
"Type" = ($Monitor.UserFriendlyName -notmatch 0 | ForEach-Object{[char]$_}) -join ""
"SerialScherm" = ($Monitor.SerialNumberID -notmatch 0 | ForEach-Object{[char]$_}) -join ""
}