2016-06-24 16 views
1

Morgen Leute, und was für ein trauriger Tag ist es, britisch zu sein.Exchange Get-MailboxFolderStatistics FolderSize zu MB

Wie auch immer, ich versuche MailboxFolderStatistics 's FolderSize zu MB zu bekommen.

Die folgende Zeile:

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

funktioniert gut, wenn ich Exchange-Verwaltungsshell bin mit. Wenn ich eine Remote-PS-Sitzung in einer meiner Exchange-Boxen verwende, bekomme ich nichts für FolderSize.

Irgendwelche Ideen?

+0

Wenn Sie brechen diese auf einzelne Befehle nach unten, wird der erste ('Get-Mailbox Joe.Bloggs') geben Sie ein Ergebnis? – sodawillow

+0

Hallo Sodawillow Es tut ja. Wenn ich Get-mailboxFolderStatistics Joe.Bloggs | Wählen Sie FolderPath, Foldersize Ich bekomme den Ordner Pfad und FolderSize in "2.364 MB (2.478.818 Bytes)" Format –

Antwort

1

Das liegt daran, dass die Exchange-Verwaltungsshell, die Sie auf dem Server ausführen, den Typ Microsoft.Exchange.Data.ByteQuantifiedSize enthält, der durch Remoting in System.String konvertiert wird. Das erstere legt eine ToMB() Methode offen, die letztere nicht.

Ich habe eine Abhilfe geschrieben, aber vielleicht gibt es eine einfachere und/oder schönere Methode:

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

Dieses verwendet einen regulären Ausdruck die hässliche Zeichenfolge (Beispiel: 3.712 KB (3,801 bytes)), um in eine brauchbare Zahl. Auf meinem System , ist kein gültiges Ziffern Gruppierungssymbol, also musste ich es auch aus der Zeichenfolge entfernen.

+0

Sie Sir, sind ein Held. Danke. Funktioniert gut –

0

können Sie die folgenden Zeilen verwenden, um die $ _ zu bekommen. Folder in [Nachkommastellen] dargestellt

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