2014-08-07 15_18_56-statistics - Szukaj w Googletrochę na temat statsów na Ex2kd. że PowerShell wymiata to już pisałem wiele razy, ale nie omieszkam jeszcze wiele napisać. „PowerShell wymiata„. wszystko co kiedyś było bardzo trudne, w porywach do niemożliwe i wymagało jakiejś tajemnej wiedzy – teraz leży okrakiem – nic tylko brać (; w przypadq Exchange trochę tajemnej wiedzy jest potrzebne żeby dobrać się do danych prawidłowo – w innym przypadq można ominąć ważne części. a w końcu w statystykach chodzi o dokładność.

najpierw kilka najprostszych poleceń do statystyk:

get-mailboxStatistics -database <dbname> #check stats for entire DB
get-mailboxStatistics "<mailbox name>" #check stats for mbx

to jednak polecenie bardzo wredne i ma swoje humory. i to poważne. na początek fakt, że w środowisq wielodomenowym nie są przeszukiwane wszystkie domeny. wychodzą z tego niewidzialne skrzynki. sprawdzić to można:

get-ADServerSettings

chodzi konkretnie o parametr 'ViewEntireForest’ który baj difolt jest ustawiony na $false. dość dziwne jest dodatkowo to, że nawet jak się go przestawi na $true, to potrafi wrócić, z niewiadomych względów, do ustawienia standardowego /: więc jeśli skrzynki znaleźć nie można, warto go sprawdzić.

set-ADServerSettings -ViewEntireForest $true

kolejną ciekawostką jest to, że to polecenie zwraca statystyki *wszystkich* skrzynek. że to przecież dobrze? no nie koniecznie – jeśli wykonuje się jakieś ruchy, przenosi się skrzynki między bazami, to taka skrzyneczka jest de facto kopiowana, a jej cień zostaje w bazie danych aż do czasu osiągnięcia czasu retencji. trzeba zatem takie skrzynki odfiltrować, a odpowiada za to parametr 'disconnectDate’ – jeśli wartość jest $null, to znaczy, że skrzynka nie jest odłączona, to znaczy że jest dobra. wiedząc to, można sprawdzić zarówno ile zajmują skrzynki ale również ile miejsca się marnuje – odłączone mailboxy można wywalić przed czasem retencji. dodatkowo, ponieważ interesują nas wielkości, a te nie są standardowo wyświetlane, warto użyć 'select’:

Get-MailboxStatistics -Database "<mailbox database>" |where {$_.DisconnectDate -eq $null} |select displayname,TotalItemSize,databasename,lastlogontime|sort -property TotalItemSize -Descending

 

jeśli interesuje nas suma, to trzeba to sobie pododawać za pomocą 'measure’ ale to za chwilę. najpierw zagadka – czemu to polecenie nie zadziała zgodnie z oczekiwaniami? otóż sortujemy po wielkości, a te zwracane są w różnych jednostkach – MB, GB, PTB [to skrzynka CEO (; ], więc 3MB będą większe od 1GB. trzeba zatem wykonać trochę matematyki:

Get-MailboxStatistics -Database "<mailbox database>" |where {$_.DisconnectDate -eq $null} |select displayname,@{N="itemSize";E={[math]::round($_.totalitemsize.value.tobytes() /1MB,2)}},databasename,lastlogontime|sort -property ItemSize -Descending

i to niestety nie koniec. jednej rzeczy nie udało mi się odkryć. otóż po usunięciu skrzynki użytkownika i założeniu mu nowej, disconnectDate pozostaje $null /: a to oznacza, że cały czas pojawia się w statsach. za to mniej grymaśne jest polecenie get-mailbox a więc jeśli nie interesuje nas zużyte miejsce przez nieistniejące skrzynki, najlepiej korzystać od tej strony:

get-mailbox -database <mailbox database>|get-mailboxStatistics|select displayname,@{N="itemSize";E={[math]::round($_.totalitemsize.value.tobytes() /1MB,2)}},databasename,lastlogontime|sort -property ItemSize -Descending

jeśli nie interesują nas poszczególne skrzynki a bardziej wielkości całych baz:

Get-MailboxDatabase -Status|select name,@{N="DBsize";E={"$([math]::round($_.DatabaseSize.Tobytes() /1Gb, 2)) GB"}},databasesize|sort -Property databasesize -Descending|select name,dbsize

a co do mierzenia całej wielkości, to już odeślę do zewnętrznego wpisu, gdzie jest bardzo ładna i prosta funkcja, która to realizuje.

eN.

-o((:: sprEad the l0ve ::))o-

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Time limit is exhausted. Please reload CAPTCHA.