2016-06-24 40 views
1

早上人們,以及英國人感到悲傷的一天。將Get-MailboxFolderStatistics文件夾大小更改爲MB

無論如何,我試圖讓MailboxFolderStatisticsFolderSize MB。

以下行:

Get-MailboxFolderStatistics Joe.Bloggs | 
    Where-Object { $_.FolderPath -ne "/Deletions" } | 
    Select-Object FolderPath, @{ N = "FolderSize (MB)"; E = { $_.FolderSize.ToMB() } } 

工作正常,當我使用Exchange命令行管理程序。

但是,如果我使用遠程PS會話進入我的Exchange箱之一,我沒有得到任何東西FolderSize

任何想法?

+0

如果打破這種下降到各個命令表示,做第一個('獲取-MailboxFolderStatistics Joe.Bloggs' )給你一個結果? – sodawillow

+0

Hi Sodawillow 確實如此。如果我做 Get-mailboxFolderStatistics Joe.Bloggs |選擇FolderPath,Foldersize 我得到的文件夾路徑和FolderSize在「2.364 MB(2,478,818字節)」格式 –

回答

1

這是因爲您在服務器上運行的Exchange命令行管理程序包含一個名爲Microsoft.Exchange.Data.ByteQuantifiedSize的類型,該類型通過遠程處理轉換爲System.String。前者公開ToMB()方法,後者不公開。

我已經寫一種變通方法,但也許還有一個更簡單和/或更漂亮方法:

Get-MailboxFolderStatistics Joe.Bloggs | 
    Where-Object { $_.FolderPath -ne "/Deletions" } | 
    Select-Object FolderPath, @{ 
     N = "FolderSize (MB)"; 
     E = { 
      "{0:N2}" -f ((($_.FolderSize -replace "[0-9\.]+ [A-Z]* \(([0-9,]+) bytes\)","`$1") -replace ",","")/1MB) 
     } 
    } 

這使用正則表達式來轉動難看的字符串(例如:3.712 KB (3,801 bytes))爲可用的號碼。在我的系統,不是一個有效的數字分組符號,所以我不得不從字符串中刪除它。

+0

您先生,是英雄。 謝謝。作品一種享受 –

0

您可以使用以下行來獲得$ _。FolderSize在[小數]

Select-Object @{ 
N = "FS_MB"; 
     E = { 
      [math]::round(([decimal](($_.FolderSize -replace "[0-9\.]+ [A-Z]* \(([0-9,]+) bytes\)","`$1") -replace ",","")/1MB),2) 
     } 
}