2017-01-18 2 views
1

Я использую команду ниже, чтобы попытаться извлечь размеры почтового ящика в нашем офисе 365, после чего я попытался отфильтровать результаты, чтобы включить только почтовые ящики, размер которых превышает 40 ГБ.Powershell - Get-MailboxStatistics | TotalItemSize -gt «40 ГБ»

Я считаю, что это потому, что ниже преобразовывается «TotalItemSize» в строку, а затем я не могу сравнить с [int] значением '40' 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 ПОМОЩЬ !!!! !!!

ответ

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

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() 
+0

Я только что попробовал это, хотя думал метод .ToGB() работает только в более старых версиях обмена, а не O365 - я попытался выполнить вышеописанное и получить ниже - вызов метода завершился неудачно, потому что [Deserialized.Microsoft.Exchange.Data.ByteQuantifiedSize] не содержит метода с именем 'ToGB'. В строке: 1 char: 61 –

+0

Попробуйте это: https://blogs.technet.microsoft.com/heyscriptingguy/2013/02/27/get-exchange-online-mailbox-size-in-gb/ – Avshalom

+0

, кажется, достигает только того, что я уже могу вывести, но я все еще застрял в разделении Я также попытался поместить вывод в переменную, а затем передать это, например, $ abovecmd = $ abovecmd.TotalItemSize -gt «40.0», который затем выводит правильные результаты - однако это не означает, что почтовый ящик выводит только размер почтового ящика , –

Смежные вопросы