Когда вы экспортируете тот же набор свойств, вы можете использовать для этого Compare-Object
:
$props = @("samAccountName","displayName","mail")
$res1 = Get-ADUser -filter 'GivenName -eq "Robert"' -properties $props | Select-Object $props
$res2 = Get-ADUser -filter 'GivenName -like "Rob*"' -properties $props | Select-Object $props
$comp = Compare-Object -ReferenceObject $res1 -DifferenceObject $res2 -IncludeEqual -ExcludeDifferent
По умолчанию Compare-Object
показывает различия между объектами, поэтому вы должны включить равные объекты иисключить разные.
Если по какой-то причине вы не хотите сравнивать все свойства, вы можете указать -Property
параметр, например:
# In that example you you want compare only displayName and mail
# SamAccountName might be different
$comp = Compare-Object -ReferenceObject $res1 -DifferenceObject $res2 -IncludeEqual -ExcludeDifferent -Property displayName,mail
Примечание:
Как вы могли заметить, я добавил еще одно улучшение в ваш скрипт - я сохранил все свойства в переменной и затем использовал его в Get-ADUser
и Select-Object
(идея взята из этого ответа ).Это может быть полезно, если вы хотите добавить / удалить любое свойство.Вы также можете сделать это следующим образом:
$props = "samAccountName","displayName","mail"
Но это работает только для более чем одного параметра, поэтому я хотел бы явно сделать его массивом (подробнее об этом в другой полезный ответ ).