我使用下面的代码检索并同时为EmailAddresses
属性中的每个smtp
属性添加分隔符“,
”。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
字符串不包含'OrderByDescending()'或'OrderBy()' – 4c74356b41
这就解释了它。谢谢。 – NiklasJ
你可以使用'Sort-Object'在PowerShell中排序。像这样:'$ a = @('b','A'); $ a | Sort-Object' – 4c74356b41