Я использую приведенный ниже код для извлечения и одновременного добавления разделителя «,
» для каждого smtp
-атрибута в EmailAddresses
-создании.PowerShell извлекать и сортировать EmailAddresses
get-mailbox | select-object DisplayName,PrimarySMTPAddress, @{Name='EmailAddresses';Expression={[string]::join(", ", ($_.EmailAddresses))}}
Но я также хотел бы, чтобы отсортировать значения EmailAddressess
так, что верхний регистр всегда приходит первой с помощью PowerShell и с минимальными усилиями (короткий код), как это возможно.
Если вы не знакомы с Microsoft Exchange: каждое значение внутри EmailAddresses
начинается с smtp:
или SMTP:
, за которым следуют различные адреса электронной почты. SMTP верхнего регистра означает его основной SMTP-адрес, используемый при отправке электронной почты, например. Нижний регистр smtp
означает его просто другой адрес электронной почты.
Я хотел бы сортировать выход так, чтобы на первом месте было значение SMTP:*
.
Вопрос о бонусе, в Expression
-block; можно использовать несколько перегрузок [string]::
, если да, то как?
Я пытался добиться отсортирован с помощью [string]::OrderBy()
и [string]::OrderByDescending()
, но я не мог понять, как использовать их вместе с [string]::split()
.
Благодаря пользователю 4c74356b41, теперь я понимаю, что моя строка не содержит OrderBy()
или OrderByDescending()
, следовательно, они не могут быть использованы.
MSDN: OrderBy Method
MSDN: OrderbyDescending Method
string не содержит 'OrderByDescending()' или 'OrderBy()' – 4c74356b41
Это объясняет это. Благодарю. – NiklasJ
вы можете использовать 'Sort-Object' для сортировки в powershell. Например: '$ a = @ ('b', 'A'); $ a | Sort-Object' – 4c74356b41