Powershell: выбор частей массива с помощью WHERE

#powershell

#powershell

Вопрос:

У меня есть два массива $list_CloudUsers и $list_Active. Оба имеют столбец с именем Alias . Я хочу отфильтровать $list_CloudUsers, чтобы в списке не было ни одного из псевдонимов, содержащихся в $list_Active .

Я смог сделать это с помощью:

 $list_arc = Import-CSV $Arc_LastAccess
$list_Active =  $list_arc | Where { [int]$_.InactivityDays -le 30}

$NewList = @()
ForEach ($User_Cloud in $list_CloudUsers)
        {
        $Alias = $User_Cloud.Alias
        if ($list_Active -match $alias) {continue}
        $NewList  = $User_Cloud
        } 

Но с этим это не работает. Любые идеи, как я могу заставить WHERE работать правильно.

 $list_arc = Import-CSV $Arc_LastAccess
$list_Active =  $list_arc | Where { [int]$_.InactivityDays -le 30}
$NewList1 = $list_CloudUsers | Where {$list_Active -NotMatch $_.alias} 

Ответ №1:

Попробуйте

 $NewList1 = $list_CloudUsers | Where-Object {$list_Active.Alias -notcontains $_.Alias}
 

Комментарии:

1. Да, это было так. Спасибо @Theo за вашу помощь