Ottieni il nome in una matrice di coppie chiave-valore in PowerShell


1

Durante il tentativo di scrivere alcuni script di manutenzione per la nostra distribuzione di Exchange 2013, uno di quelli di cui ho bisogno è uno script che determinerà su quale server è attualmente attivo un database, rispetto a quale dovrebbe essere attivo.

Abbastanza facile, tranne per il fatto che ho incontrato una sintassi che non avevo mai visto prima, e non riesco a capire come ottenere i dati di cui ho bisogno. Quando eseguo il comando Get-MailboxDatabase Database1 | Select ActivationPreference, l'output che ottengo è simile al seguente:

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

Ora so cosa significa (Server1 è il server preferito per ospitare la copia attiva di questo database), ma per il mio script devo essere in grado di estrarre quei dati - e non riesco a capirlo. L'accesso all'array può facilmente procurarmi la prima coppia ( [Server1, 1]), che è un System.Collections.Generic.KeyValuePair, ma sono un principiante relativamente a PowerShell e persino a .NET in generale e non riesco a capire cosa significhi o come ottenere le informazioni di cui ho bisogno di esso.

Quali comandi / metodi / operatori / ecc. Esistono che possono estrarre la chiave in una coppia chiave-valore come questa?

Risposte:


1

Va bene, risulta che questo è semplicissimo. Non so perché non l'ho provato prima, ma ho inserito uno di questi oggetti KeyValuePair Format-Liste ho ottenuto il seguente output:

Key   : Server1
Value : 1

Quindi, è semplice come indirizzare il parametro Key dell'oggetto per trovare quel valore nel mio script.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.