Найти элементы, которые находятся в массиве 1, но не в массиве 2

Я извлек два списка компьютеров из двух разных инструментов,Array1 а такжеArray2.

Теперь мне нужно извлечь те, которые находятся вArray1, но не вArray2.

Мне удалось получить все подходящие, сделав это:

$matchingComp = @()

foreach ($SCCMcomputer in $SCCMcomputers) {
    foreach ($eWPTcomputer in $eWPTcomputers) {
        if ($SCCMcomputer.Computername -eq $eWPTComputer.Computername) {
            $obj = New-Object PSObject
            $obj | Add-Member -MemberType NoteProperty -Name "ComputerName" -Value $SCCMcomputer.Computername
            $matchingComp +=$obj
        }
    }
}

$matchingComp | Export-Csv $inEWPT -Delimiter "," -NoTypeInformation

Но мне все еще нужны те, которые находятся в$SCCMcomputer но не в$eWPTcomputers...

Я нашел некоторые решения для SO с другими языками (например, Perl), но не для PowerShell.

ОБНОВИТЬ

Я все еще не получаю правильный вывод в Excel с этой формулой:

вывод выглядит так:

означает, что некоторые здесь, некоторые нет. Выход в PowerShell выглядит следующим образом

означает, что 0KB является emtpy.

$SCCMcomputers | Export-Csv $sccmexport -Delimiter "," -NoTypeInformation
$eWPTcomputers | Export-Csv $ewptexport -Delimiter "," -NoTypeInformation
Compare-Object -ReferenceObject $SCCMcomputers -DifferenceObject $eWPTcomputers | ?{$_.sideIndicator -eq "=>"} |select inputobject | Export-Csv $inEWPT -NoTypeInformation
Compare-Object -ReferenceObject $SCCMcomputers -DifferenceObject $eWPTcomputers | ?{$_.sideIndicator -eq "=="} |select inputobject | Export-Csv $inBoth -NoTypeInformation
Compare-Object -ReferenceObject $SCCMcomputers -DifferenceObject $eWPTcomputers | ?{$_.sideIndicator -eq "<="} |select inputobject | Export-Csv $inSCCM -NoTypeInformation

И имя столбца (или как оно называется) от SCCMcomptuers / eWPTcomputers является "Computername"

Есть идеи, что я могу делать не так? Оба компьютерных массива генерируются из SQL и в хеш-таблицах (я думаю, что это называется):@{Computername=......}@{Computername...., что-то вроде этого.

Обновление 2

foreach ($t in $sccmComputers) {
    $Test1 += $t.computername
}

$Test2 = @()
foreach ($t in $ewptComputers) {
    $Test2 += $t.computername
}

Удаление заголовка Hashtable и просто наличие массивов, заполненных строками, работает фантастически ..... даже-Property computername не сработало ...: S

Ответы на вопрос(5)

Ваш ответ на вопрос