Powershell CSV группировка данных по полям - PullRequest
0 голосов
/ 07 июня 2019

У меня большая борьба, меня попросили создать большой скрипт, который будет выполнять определенные действия в консоли SCCM на основе переменных, взятых из файла CSV.Я рассмотрел часть сценариев SCCM, так как думал, что это будет сложнее ... но, похоже, я понятия не имею, как читать данные из CSV ...

Можно ли получить данные из файла, которыйвыглядит так:

Hostname  Hours  Date
S1        14-15  05.05.2019
S2        14-15  05.05.2019
S3        9-13   06.05.2019

И использовать powershell для создания переменных, которые будут содержать все имена хостов, которые имеют одинаковые данные из «Часов» и один и тот же столбец «Дата от даты»?

Причина, по которой мне это нужно, заключается в том, что я буду создавать коллекции в SCCM с такой логикой:

  • Создать коллекцию, содержащую все имена хостов из таблицы Hostname, с именем, котороекомбинация времени и даты («Myname 14-15 05.05.2019»), а затем
  • редактирование свойств этой коллекции для ввода данных, считанных из столбца «Часы», для установки окна обслуживания (что в основном означает, что я буду использовать переменнуюкоторый содержит ввод часов и даты, и просто поместите его в окно обслуживания с командлетом powershell, созданным для этой цели)

Есть ли способ сделать это и возможно ли получить данные для просмотракак мне это нужно?

1 Ответ

3 голосов
/ 07 июня 2019

Предполагается, что CSV-файл input.csv

Import-Csv .\Input.csv | 
  Group-Object Hours,Date | 
    ForEach-Object {
      [pscustomobject]@{
        Name      = "Myname {0} {1}" -f ($_.Name -Split ', ')
        HostNames = $_.Group.HostName -Join '; '
      }
    }

Выходы:

Name                    HostNames
----                    ---------
Myname 14-15 05.05.2019 S1; S2
Myname 9-13 06.05.2019  S3
...