Powershell CSV 按字段分组数据

Powershell CSV grouping data by fields

我在这里遇到了很大的困难,我被要求创建一个大脚本,该脚本将根据从 CSV 文件中获取的变量在 SCCM 控制台中执行某些操作。 我已经介绍了 SCCM 脚本部分,因为我认为它会更难......但我似乎不知道如何从 CSV 读取数据......

是否可以从如下所示的文件中获取数据:

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

并使用 powershell 创建变量,这些变量将包含共享来自 "Hours" 的相同数据和来自 Date 列的相同 Date 的所有主机名?

我之所以需要这个,是因为我将使用以下逻辑在 SCCM 中创建集合:

有什么方法可以做到这一点,甚至可以让数据看起来像我需要的那样吗?

假设一个 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