Rufen Sie den Vornamen in einem Array von Schlüsselwertpaaren in PowerShell ab

1159
Kromey

Beim Versuch, einige Wartungsskripts für unsere Exchange 2013-Bereitstellung zu schreiben, benötige ich unter anderem ein Skript, mit dem bestimmt wird, auf welchem ​​Server eine Datenbank derzeit aktiv ist, und auf welchem ​​nicht.

Einfach genug, außer dass ich eine Syntax kennengelernt habe, die ich noch nie zuvor gesehen habe und nicht herausfinden kann, wie ich die benötigten Daten daraus abrufen kann. Beim Ausführen des Befehls Get-MailboxDatabase Database1 | Select ActivationPreferencesieht die Ausgabe folgendermaßen aus:

{[Server1, 1], [Server2, 2]} 

Nun, ich weiß, was dies bedeutet (Server1 ist der bevorzugte Server zum Hosten der aktiven Kopie dieser Datenbank), aber für mein Skript muss ich in der Lage sein, diese Daten zu extrahieren - und ich kann das nicht herausfinden. Der Array-Zugriff kann mir leicht das erste Paar ( [Server1, 1]) System.Collections.Generic.KeyValuePairliefern, das ist ein, aber ich bin ein relativer Neuling in PowerShell und sogar in .NET im Allgemeinen und kann nicht herausfinden, was dies bedeutet oder wie ich die benötigten Informationen herausbekomme davon.

Welche Befehle / Methoden / Operatoren / etc gibt es, die den Schlüssel in einem Schlüsselwertpaar wie diesem extrahieren können?

1

1 Antwort auf die Frage

1
Kromey

Okay, das stellt sich als einfach heraus. Ich weiß nicht, warum ich es nicht früher probiert habe, aber ich leitete eines dieser KeyValuePair-Objekte ein Format-Listund erhielt die folgende Ausgabe:

Key : Server1 Value : 1 

Es ist also so einfach wie die Schlüsselparameter des Objekts anzusprechen, um diesen Wert in meinem Skript zu finden.