Das CMDLet Compare-Objects bietet die Möglichkeit, zwei Objekte miteinander zu vergleichen. Zunächst ein kleines Beispiel, dass die Funktion verdeutlicht. Wir nehmen zwei Arrays und vergleichen diese miteinander.
Die Richtungsanzeiger unter SideIndicator geben die Unterschiede an. “6” ist in $b, aber nicht in $a enthalten und “1” ist in $a, aber nicht in $b enthalten. Sie haben die Möglichkeit zu wählen, welches Ergebnis Sie möchten. Ohne Parameter werden nur die Unterschiede ausgegeben. Zur zusätzlichen Ausgabe der übereinstimmenden Einträge verwenden Sie den Parameter –IncludeEqual.
Mit dem zusätzlichen Parameter -ExcludeDifferent erhalten Sie nur die Übereinstimmungen.
Anwendungsbeispiele
Sie vergleichen die gestarteten Prozesse eines Systems zu unterschiedlichen Zeiten.
Wie Sie am Ergebnis erkennen können, wurde zwischen den beiden Abfragen auf laufende Prozesse Microsoft Edge gestartet.
Über dieses Verfahren können Sie auch Dateien miteinander vergleichen. Wir nehmen als Beispiel zwei fiktive CSV Logdateien, die unter dem letzten Eintrag einmal “OK” und einmal “Error” melden.
Datei1.txt
Date,Time,EntryID,Status
11/11/16,10:46,24,ok
11/11/16,11:22,12,error
11/11/16,12:12,06,warning
11/11/16,12:13,24,ok
11/11/16,14:32,24,ok
Datei2.txt
Date,Time,EntryID,Status
11/11/16,10:46,24,ok
11/11/16,11:22,12,error
11/11/16,12:12,06,warning
11/11/16,12:13,24,ok
11/11/16,14:32,12,error
Nun werden beide Dateien verglichen.
Tipp
Für Compare-Object gibt es schon den Alias diff und mit dem Parameter –PassThru können Sie die Ausgabe noch etwas einfacher darstellen.