Ваш синтаксис неправильный:
$newgroup = $allgroups | ? DisplayName -notin $mailgroups.DisplayName
или если вы хотите сохранить свой путь:
$newgroup = $allgroups | Where-Object { $PSItem.DisplayName -notin $mailgroups.DisplayName }
альтернативно, для v2:
$newgroup = $allgroups | Where-Object {
($mailgroups | Select-Object -ExpandProperty DisplayName) -notcontains $_.DisplayName
}
сноска: $PSItem
и $_
одинаковы; $PSItem
введено в v3. Кроме того, ?
является псевдонимом по умолчанию для Where-Object
.