Как добавить информацию о нескольких мониторах за информацией о компьютере в CSV-файл? - PullRequest
0 голосов
/ 27 марта 2019

Каждый раз, когда я запускаю свой сценарий powershell, мой вывод поступает в файл csv, но я хочу, чтобы он шел в одной строке, и теперь он работает так, что для каждого монитора информация о моем компьютере располагается напротив информации о каждом мониторе, как это: Current State

но я просто хочу, чтобы моя N-я информация о мониторе добавлялась после второй, например: The state i want it to be in

код, который я использую:

$output = foreach($computer in $Desktop){

  ForEach ($Monitor in $Monitors){

    $Manufacturer = ($Monitor.ManufacturerName -notmatch 0 | ForEach-Object{[char]$_}) -join ""
    $Name = ($Monitor.UserFriendlyName         -notmatch 0 | ForEach-Object{[char]$_}) -join ""
    $Serial = ($Monitor.SerialNumberID         -notmatch 0 | ForEach-Object{[char]$_}) -join ""

        [PSCustomObject]@{
            "Merk" = $Desktop.CsManufacturer
            "Model" = $Desktop.CsModel
            "S/n" = $Desktop | Select-Object -expand BiosSeralNumber
            "PC Naam" = $Desktop.CsName
            "CPU" = $processor.Name
            "Memory" = "$RAM GB"
            "OS" = $Desktop.WindowsProductName
            "MAC LAN" = $MACLAN
            "MAC WIFI" = $MACWIFI
            "Office" = $officeVersion
            "Merk /Model" = $Manufacturer
            "Type" = $Name
            "SerialScherm" = $Serial
        }

  }

}

$output | Export-Csv -Path $GL\info.csv -NoTypeInformation -Delimiter ';'

Так что, если бы у меня было 3 монитора, третий монитор должен был бы добавить после 2-го теперь на той же строке

1 Ответ

0 голосов
/ 27 марта 2019

Следующие лица могут делать то, что вы хотите:

$output = foreach($computer in $Desktop){
$Hash = [ordered]@{  "Merk" = $Desktop.CsManufacturer
            "Model" = $Desktop.CsModel
            "S/n" = $Desktop | Select-Object -expand BiosSeralNumber
            "PC Naam" = $Desktop.CsName
            "CPU" = $processor.Name
            "Memory" = "$RAM GB"
            "OS" = $Desktop.WindowsProductName
            "MAC LAN" = $MACLAN
            "MAC WIFI" = $MACWIFI
            "Office" = $officeVersion
    }
$MonitorNumbers = @($null)
$MonitorNumbers += (2..$Monitors.count)
$MonitorIndex = 0
  ForEach ($Monitor in $Monitors){

    $Manufacturer = ($Monitor.ManufacturerName -notmatch 0 | ForEach-Object{[char]$_}) -join ""
    $Name = ($Monitor.UserFriendlyName         -notmatch 0 | ForEach-Object{[char]$_}) -join ""
    $Serial = ($Monitor.SerialNumberID         -notmatch 0 | ForEach-Object{[char]$_}) -join ""

    $Hash.add("Merk /Model $($MonitorNumbers[$MonitorIndex])", $Manufacturer)
    $Hash.add("Type $($MonitorNumbers[$MonitorIndex])", $Name)
    $Hash.add("SerialScherm $($MonitorNumbers[$MonitorIndex])",$Serial)
    $MonitorIndex++
        }
[PSCustomObject]$Hash
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...