PowerShell使用多个项目对CSV进行排序

PowerShell使用多个项目对CSV进行排序,powershell,Powershell,我无法正确排序CSV。我有以下格式的数据: File.csv: Name,Application user1,app1 user1,app1 user2,app1 user2,app2 我能够获得一个包含多个app1、多个app2的用户列表,但我不知道如何获得包含app1和app2的用户列表 $users = Import-Csv file.csv $users | ? {$_.Application -eq "app1" | Group Name | ? {$_.Count

我无法正确排序CSV。我有以下格式的数据:

File.csv:

Name,Application
user1,app1
user1,app1
user2,app1
user2,app2

我能够获得一个包含多个app1、多个app2的用户列表,但我不知道如何获得包含app1和app2的用户列表

    $users = Import-Csv file.csv
    $users | ? {$_.Application -eq "app1" | Group Name | ? {$_.Count -gt 1} |
 % {$_ | select -ExpandProperty group | select -first 1}

    $users | ? {$_.Application -eq "app2" | Group Name | ? {$_.Count -gt 1} |
 % {$_ | select -ExpandProperty group | select -first 1}

我甚至不确定从何处开始将两者结合起来。

按用户名分组,并检查每个组是否包含每个应用程序的条目:

$UsersWithBothApps = $users | Group-Object -Property Name | ForEach-Object {
    $Apps = $_.Group | Select-Object -ExpandProperty Application
    if($Apps -contains "app1" -and $Apps -contains "app2"){
        $_.Name
    }
}
另一种方法:

#requires v4.0
$app1='app1'
$app2='app2'

$users | 
    group name | 
    ?{ $_.group.application -eq $app1 } |
    ?{ $_.group.application -eq $app2 } |
    % name