Получить имя в массиве пар ключ-значение в PowerShell
При попытке написать несколько сценариев обслуживания для нашего развертывания Exchange 2013 одним из необходимых мне является сценарий, который будет определять, на каком сервере активна база данных в настоящее время, а не на каком сервере она должна быть активна.
Достаточно просто, за исключением того, что я столкнулся с синтаксисом, которого я не видел раньше, и не могу понять, как получить из этого нужные мне данные. Когда я запускаю команду Get-MailboxDatabase Database1 | Select ActivationPreference
, вывод, который я получаю, выглядит так:
{[Server1, 1], [Server2, 2]}
Теперь я знаю, что это значит (Server1 - предпочтительный сервер для размещения активной копии этой базы данных), но для моего сценария мне нужно иметь возможность извлечь эти данные - и я не могу понять это. Массив доступа может легко достать мне первую пару ([Server1, 1]
), который является System.Collections.Generic.KeyValuePair
, но я относительный новичок в PowerShell и даже в.NET в целом и не могу понять, что это значит или как извлечь из него нужную мне информацию.
Какие существуют команды / методы / операторы / и т.д., которые могут извлечь ключ из пары ключ-значение, как это?
1 ответ
Хорошо, оказывается, это очень просто. Не знаю, почему я не попробовал это раньше, но я перевел один из этих объектов KeyValuePair в Format-List
и получил следующий вывод:
Key : Server1
Value : 1
Так что это просто, как обратиться к параметру Key объекта, чтобы найти это значение в моем скрипте.