2016-06-24 9 views
1

午前の人々、そして悲しい一日は英国であることです。Exchange Get-MailboxFolderStatistics FolderSize to MB

とにかく、私はMailboxFolderStatisticsFolderSizeをMBにしようとしています。

次の行:私は、Exchange管理シェルを使用していたときに

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

が正常に動作します。

私は、Exchangeボックスの1つにリモートPSセッションを使用している場合、私はFolderSizeのための何も取得しません。

アイデア?

+0

で表される第1の1( 'は、Get-MailboxFolderStatistics Joe.Bloggs'を行います)あなたに結果を与える? – sodawillow

+0

こんにちはSodawillow はいです。私がしている場合 Get-mailboxFolderStatistics Joe.Bloggs | FolderPath、Foldersizeを選択してください "2.364 MB(2,478,818 bytes)"の形式でフォルダパスとFolderSizeを取得します –

答えて

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) 
     } 
}