Получить имя в массиве пар ключ-значение в PowerShell

967
Kromey

При попытке написать несколько сценариев обслуживания для нашего развертывания Exchange 2013, один из тех, которые мне нужны, - это сценарий, который будет определять, на каком сервере активна база данных в настоящее время, а не на каком сервере.

Достаточно просто, за исключением того, что я столкнулся с синтаксисом, которого я не видел раньше, и не могу понять, как получить из этого нужные мне данные. Когда я запускаю команду Get-MailboxDatabase Database1 | Select ActivationPreference, вывод, который я получаю, выглядит так:

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

Теперь я знаю, что это значит (Server1 - предпочтительный сервер для размещения активной копии этой базы данных), но для моего сценария мне нужно иметь возможность извлечь эти данные - и я не могу понять это. Доступ к массиву может легко дать мне первую пару ( [Server1, 1]), которая является System.Collections.Generic.KeyValuePair, но я относительный новичок в PowerShell и даже в .NET в целом и не могу понять, что это значит или как получить нужную мне информацию этого

Какие существуют команды / методы / операторы / и т.д., которые могут извлечь ключ из пары ключ-значение, как это?

1

1 ответ на вопрос

1
Kromey

Okay, turns out this is dead simple. Don't know why I didn't try it sooner, but I piped one of these KeyValuePair objects into Format-List, and got the following output:

Key : Server1 Value : 1 

So, it's as simple as addressing the object's Key parameter to find that value in my script.