hdsouza
hdsouza

Reputation: 355

Powershell: Selecting parts of an array with WHERE

I have two arrays $list_CloudUsers and $list_Active. Both have a column called Alias. I want to filter $list_CloudUsers so that the list does not have any of the ALIASes that are contained in $list_Active.

I was able to do it with:

$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
        }

But it does not work with this. Any ideas how I can get the WHERE to work correctly.

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

Upvotes: 0

Views: 36

Answers (1)

Theo
Theo

Reputation: 61028

Try

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

Upvotes: 1

Related Questions