从 .csv 添加项目并动态分组

Adding items from .csv and grouping them dynamically

我正在尝试为用户系统创建代码条目。下面是代码的一个小例子。我可以获得基于 .csv 创建的用户和组(见下文),但我找不到进入组成员模式并根据添加的组添加这些用户的好方法(将用户关联到他们尊重的团体)。

它需要遍历组名(基于唯一的条目——不确定这是否是最好的方法……可能不是)。所以,让我们选择 11 年级:进入 11 年级模式(动态地,每个唯一列表),并添加所有需要进入 11 年级的用户。听起来很简单,但一直找不到方法:\

$path="items.csv"
$All_grades = Import-Csv -path $path | sort grade -Unique 

Write-Host "config users"        #<<---Add Users from .csv

Import-Csv -path $path |

ForEach-Object
{
Write-Host edit id """$($_.id)"""
write-host set grade """$($_.grade)"""
Write-Host set username """$($_.username)"""
Write-Host next
}

Write-Host "config grades"      #<<-----Add Groups from .csv (unique groups)

ForEach ($_ in $All_grades)
{
Write-Host edit $_.grade
write-host set comment """$($_.comment)"""
Write-Host next
}

Write-Host "config group membership"       #<<----Add Group membership based on .csv

ForEach ($All_grades in $path){   #<------- Trying to pick a group from the .csv list, 
    foreach ($_ in $path) #<-------    then look at all usernames and assign correct grade for that user
{                        #<-------     but not working
Write-Host edit  #<------- 
Write-Host set member xy #<--- 
}}

这是我的 .csv 文件的样子 (items.csv):

id,username,grade,comment
21234,bsmith,10,tenth
21123,djohnson,12,twelveth
11223,jbliss,11,eleventh
21211,atwain,11,eleventh

在我看来,Group-Object 就是您想要的:

foreach ($gradeGroup in ($All_grades | Group-Object -Property Grade))
{
    Write-Host "Create group $($gradeGroup.Name)"
    foreach ($member in $gradeGroup.Group)
    {
        Write-Host "- Add $($member.username) to $($gradeGroup.Name)"
    } 
}