Powershell - Get-MailboxStatistics | TotalItemSize -gt" 40GB"

时间:2017-01-18 09:25:25

标签: powershell office365

我正在使用以下命令尝试在Office 365中提取邮箱大小,然后我试图过滤结果以仅包含超过40GB的邮箱。

我相信这是因为以下转换了TotalItemSize'到一个字符串,然后我无法比较' 40'的[int]值。 GB然而我不足以改写下面的!! :(我已经尝试了很多迭代的Where-Object' TotalItemSize' -gt" 40"等等,但没有任何对我有用。

Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics   | Select DisplayName, @{name=”TotalItemSize”;expression={[math]::Round((($_.TotalItemSize.Value.ToString()).Split(“(“)[1].Split(” “)[0].Replace(“,”,””)/1GB),2)}},ItemCount | Sort “TotalItemSize” -Descending 

感谢您的帮助。

19/01/17仍然是一个问题 - 任何人都添加任何东西? 20/01/17仍然是个问题 - 任何人都可以添加任何东西吗? 23/01/17仍然无法解决! 25/01/17仍然没有决议 1/02帮助!!!!!!!

2 个答案:

答案 0 :(得分:1)

您只需使用.ToGB()属性的TotalItemSize.Value方法,

即可

所以这应该很容易:

Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | ? {$_.TotalItemSize.Value.ToGB() -gt 40}

然后使用Select-Object

将所需的属性添加到管道中

这些是所有可用选项(使用Get-Member):

TypeName: Microsoft.Exchange.Data.ByteQ

Name          MemberType Definition
----          ---------- ----------
ToBytes       Method     uint64 ToBytes()
ToGB          Method     uint64 ToGB()
ToKB          Method     uint64 ToKB()
ToMB          Method     uint64 ToMB()
ToString      Method     string ToString()
ToTB          Method     uint64 ToTB()

答案 1 :(得分:0)

我最终发现这很好用 -

Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics |选择DisplayName,@ {name =“TotalItemSize”; expression = {[math] :: Round((($ .TotalItemSize.Value.ToString())。Split(“(”)[1] .Split(“ “)[0] .Replace(”,“,”“)/ 1GB),2)}} |其中{$ .TotalItemSize -gt”45.0“} |排序TotalItemSize -Descending