Powershell: Compare-Object : Cannot bind argument to parameter 'DifferenceObject' because it is null
I'm trying to compare AD users list with distribution list (O365). Foreach loop give me results as expected:
$AD = @($(Get-ADuser -Filter *).UserPrincipalName)
$DL = @($(Get-DistributionGroupMember -Identity "Everyone").WindowsLiveId)
ForEach ($name in $AD) {if ($DL -notcontains $name) {Write-Output $name}}
But when I'm trying to use Compare-Object command:
$AD = @($(get-aduser -Filter *).UserPrincipalName)
$DL = @($(Get-DistributionGroupMember -Identity "Everyone").WindowsLiveId)
Compare-Object -DifferenceObject $AD -ReferenceObject $DL
Console giving me error:
Compare-Object : Cannot bind argument to parameter 'DifferenceObject' because it is null.
At line:1 char:34
+ Compare-Object -DifferenceObject $AD -ReferenceObject $DL
+ ~~~
+ CategoryInfo : InvalidData: (:) [Compare-Object], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObjectCommand
Do you have any ideas why Compare-Object complaining on $AD array. It is definitely not null and not empty.