Может быть, это то, что вы ищете:
$changedEntries = Compare-Object (gc adminreport.txt) (gc adminreport2.txt) | ?{$_.SideIndicator -eq "<="} | select -expandproperty inputobject
Write-Host "Changed entries: $changedEntries"
if ($changedEntries) {
$joinedChangedEntries =
send-mailmessage smtpserver mail .mydomaincom -To administrator@mydomain.com -From user@mydomain.com -Subject 'Admin member changed' -Body
}
UPDATE:
Я тестировал приведенный выше код с простыми int-массивами.
$a = 1..4
$b = 4..8
$changedEntries = Compare-Object $a $b | ?{$_.SideIndicator -eq "<="} | select -ExpandProperty inputobject
$joinedEntries = $changedEntries -join ","
if ($changedEntries) { write-host "Found changed entries: $joinedEntries" }
$joinedEntries.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
Таким образом, скелет кода такой же, как и опубликованный выше.