我正在通過 Powershell 訪問我的云 Office 365 Exchange Server。可以通過Get-Mailbox 'username' | Select *(MS 參考)來顯示帳戶的所有屬性。
在大多數系統上,這些屬性已經排序(例如Get-ADUser 'username' -Properties *)。是否可以對Get-Mailbox輸出進行排序?我認為Get-Mailbox 'username' | Select * | Sort-Object可以解決問題,但沒有任何區別(我猜屬性不構成物件)。對單個用戶的屬性進行排序的正確命令是什么?
注意:多個帳戶的排序屬性作業正常,例如 Get-Mailbox -filter * | select Name, DisplayName | Sort-Object Displayname
更新: 我設法使用
(Get-Mailbox 'mailboxname' | select *).PSObject.properties | ForEach-Object {$_.Name} | Sort-Object Name
它讓我得到以下輸出:
AcceptMessagesOnlyFrom
AccountDisabled
AddressBookPolicy
ArchiveWarningQuota
...
$_.Name給了我值,但到目前為止我無法將兩者合并到一個串列中,我正在嘗試獲取 s.th. 像這樣:
AcceptMessagesOnlyFrom = {}
AccountDisabled = False
AddressBookPolicy =
ArchiveWarningQuota = 45 GB (48,318,382,080 bytes)
...
uj5u.com熱心網友回復:
我不完全確定這就是您所追求的,如果我錯了,請告訴我。正如在我的評論中一樣,Sort-Object可以通過一個或多個屬性處理串列或 anobject[]的排序;但排序由它的屬性一個單獨的物件,說按字母順序,將需要與訪問物件的屬性的組合.PSObject.Properties.Name,然后排序這個串列有Sort-Object。之后我們可以使用Select-Object這個排序串列來顯示我們想要的物件。
使用下面的物件作為示例,因為我不知道該型別的Microsoft.Exchange.Data.Directory.Management.Mailbox外觀。
$mailbox = [pscustomobject]@{
DisplayName = 'someuser'
UserPrincipalName = '[email protected]'
Mail = '[email protected]'
IsLicensed = $true
}
$properties = $mailbox.PSObject.Properties.Name | Sort-Object
$mailbox | Select-Object $properties
如您所見,物件的屬性現在按字母順序排序:
DisplayName IsLicensed Mail UserPrincipalName
----------- ---------- ---- -----------------
someuser True someuser@somedomain.com someuser@somedomain.com
通過查看您的編輯,您似乎正在尋找單行版,因此它的外觀如下:
Get-Mailbox 'mailboxname' | ForEach-Object {
$_ | Select-Object ($_.PSObject.Properties.Name | Sort-Object)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/394610.html
