Benutzer mit den meisten Antworten
Powershell Objekte vergleichen nur unterschiedliche Objekte , compare-object

Frage
-
moin,
ich habe da eine kniffelige Aufgabe
wir nutzen In-Place-Holds auf eine bestimmte Exchange DB mit shared Office Postfächern.
derzeit läuft jeden Tag ein Job der alle Office Postfächer in-hold setzt.
Set-MailboxSearch "InPlace" -SourceMailboxes (Get-Mailbox -Database Office| Select-Object -ExpandProperty Name)
Hat das Nachteile? Soll ich es so belassen und so umbauen, dass nur fehlende Postfächer ergänzt werden.
Powershell compare-objekt Test
ich habe Stichproben gemacht und bin der Meinung es sollte alle drinnen stehen.
Set-MailboxSearch "InPlace" -SourceMailboxes (Get-Mailbox -Database office | Select-Object -ExpandProperty Name) $b = get-mailbox -database Office $c = Compare-Object -ReferenceObject $a -DifferenceObject $b -PassThru
und bekomme ein lange Liste ALLER Objekte mit
SideIndicator : <=
hier bin ich mir nicht sicher wie es weitergeht
Set-MailboxSearch "InPlace" -SourceMailboxes (c$)
Chris
Antworten
-
Moin,
kann's gerade nicht testen, aber vermutlich enthält $a Objekte anderen Typs als $b. Hast Du das mal mit z.B. Get-Member verifiziert?
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com- Als Antwort markiert -- Chris -- Dienstag, 17. Januar 2017 14:32
-
hat funktioniert
$a = get-mailboxsearch "inPlace" | select -ExpandProperty Sourcemailboxes
$b = get-mailbox -database office
$c = Compare-Object -ReferenceObject $a -DifferenceObject $b -property name
Set-MailboxSearch "InPlace" -SourceMailboxes ($c.name)Chris
- Als Antwort markiert -- Chris -- Dienstag, 17. Januar 2017 14:32
Alle Antworten
-
Moin,
und was enthält $a?
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com -
sorry Beispiel Tippfehler
$a = get-mailboxsearch "inPlace" | select -ExpandProperty Sourcemailboxes $b = get-mailbox -database Office $c = Compare-Object -ReferenceObject $a -DifferenceObject $b -PassThru
so, jetzt müsste das Beispiel wieder passen
Chris
- Bearbeitet -- Chris -- Dienstag, 17. Januar 2017 10:18 tippfehler
-
Moin,
kann's gerade nicht testen, aber vermutlich enthält $a Objekte anderen Typs als $b. Hast Du das mal mit z.B. Get-Member verifiziert?
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com- Als Antwort markiert -- Chris -- Dienstag, 17. Januar 2017 14:32
-
bei enthalten "Name"
ich glaube ich habe es
man kann bei Compare-Object das vergleichende Feld angeben.
$c = Compare-Object -ReferenceObject $a -DifferenceObject $b -PassThru -Property Name
hier bekomme ich zuminderst nichts mehr zurück. Müsste somit stimmen.
Chris
-
zu früh gefreut
1.txt
feld1,feld2
eins,aa
zwei,cc
vier,dd
fünfi,ee2.txt
feld1,feld2
eins,aa
zwei,bb
drei,cc
vier,dd$a = get-content c:\temp\1.txt $b = get-content c:\temp\2.txt $c = compare -ReferenceObject $a -DifferenceObject $b -Property feld2
-property ist doch nicht das Feld das ich vermutet habe!
PS-TEST> $c = compare -ReferenceObject $a -DifferenceObject $b -Property feld2
PS-TEST> $c
feld2 SideIndicator
----- -------------
=>Chris
-
get-Content liefert keine zwei Ojektspalten, daher war der Test falsch.
so ging es jetzt
PS-TEST> $c
feld2 SideIndicator
----- -------------
bb =>
ee <=$a = import-csv c:\temp\1.txt -Delimiter ',' $b = import-csv c:\temp\2.txt -Delimiter ',' $c = compare -ReferenceObject $a -DifferenceObject $b -Property feld2 $c
daher könnte -Property die Lösung sein.
Chris
- Bearbeitet -- Chris -- Dienstag, 17. Januar 2017 12:30
-
hat funktioniert
$a = get-mailboxsearch "inPlace" | select -ExpandProperty Sourcemailboxes
$b = get-mailbox -database office
$c = Compare-Object -ReferenceObject $a -DifferenceObject $b -property name
Set-MailboxSearch "InPlace" -SourceMailboxes ($c.name)Chris
- Als Antwort markiert -- Chris -- Dienstag, 17. Januar 2017 14:32