Exchange Mailbox SP

Microsoft
Microsoft Operating Systems and Products

Posta kutusunun boyutu, içerdiği ileti sayısı ve en son ne zaman erişildiği gibi bir posta kutusu hakkında bilgi döndürmek için Get-MailboxStatistics cmdlet’ini kullanabilirsiniz. Ek olarak, tamamlanmış bir taşıma talebinin taşıma geçmişini veya taşıma raporunu da alabilirsiniz.

Not: Exchange Online PowerShell’de bu cmdlet yerine Get-EXOMailboxStatistics cmdlet’ini kullanmanızı öneririz.

Posta kutularının boyutunu veya öğe sayısını almak için Get-MailboxStatistics’i veya daha da iyisi, geliştirilmiş Get-EXOMailboxStatistics PowerShell CmdLet’i kullanmalısınız.

Her iki PowerShell komutu da, aşağıdaki komutu kullanarak yükleyebileceğiniz Exchange PowerShell modülünün “ExchangeOnlineManagement” parçasıdır:

Yükleme Modülü ExchangeOnlineManagement

Install-Module ExchangeOnlineManagement


Exchange yönetim modülü kurulduktan sonra, posta kutularının boyutunu ve öğe sayısını almaya başlayabilirsiniz.

Şimdiye kadar en iyi seçenek, iki bariz fayda sunduğu için yeni Get-EXOMailboxStatistics’i kullanmaktır:

İlk olarak, yalnızca temel posta kutusu istatistiklerini alır (geliştirilmiş performans).
İkincisi, boyut değerini kolayca Bayt, KB, MB ve GB’ye çevirebilir.

Size şimdi bir zamanlar en çok kullandığım cmdlet leri paylaşıyorum.

Öncelikle bir notepad içerisinde aşağıdaki satıları yazıp dosyayı sonu “Rekortmenler.ps1” olacak şekilde kayıt etmelisiniz. İşte size gerekli olan scripti aşağıda veriyorum.

Get-MailboxStatistics -Server 'SUNUCUADI' 
| where {$_.ObjectClass -eq “Mailbox”} 
| Sort-Object TotalItemSize -Descending 
| ft @{label=”User”;expression={$_.DisplayName}}, @{label=”Toplam Boyut(MB)”; expression={$_.TotalItemSize.Value.ToMB()}} 
-auto >> “c:\Temp\mailbox_size.txt”

#Set the current date
$a = get-date
$month= $a.month
$day= $a.day
$year= $a.year

#File variables
$location = "c:\temp"
$BASE = "mailbox_size.txt"
$filename = $location+"$month"+"-"+"$day"+"-"+"$year"+"-"+$BASE
$oldfile = $Location+$BASE

#Rename file for current date
rename-item $oldfile $filename

Aşağıdaki komut ise en yüksek mail adedini büyükten küçüğe doğru sıralamanıza yarayacaktır.

PS] C:\>Get-MailboxDatabase "MailboxDatabaseAdi" | Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, itemcount


[PS] C:\>Get-MailboxDatabase

Get-MailboxDatabase cmdlet’ini parametresiz kullanırsanız, Exchange organizasyonundaki tüm posta kutusu veritabanları hakkında bilgi alır. Get-MailboxDatabase cmdlet’ini Sunucu parametresiyle kullanırsanız, belirttiğiniz sunucudaki tüm posta kutusu veritabanları hakkında bilgi alır.

Aşağıdaki liste, sonuçlarda döndürülen özellikleri açıklamaktadır.

Ad: Veritabanının adı.
Sunucu: Veritabanını barındıran sunucu.
Kurtarma: Yeni veritabanının kurtarma veritabanı olarak atanıp atanmadığını belirtir.
ReplicationType: Veritabanının replikasyon tipi.

Bu cmdlet’i çalıştırabilmeniz için önce size izinlerin atanması gerekir. Bu konuda cmdlet için tüm parametreler listelense de, size atanan izinler arasında yer almayan bazı parametrelere erişiminiz olmayabilir.


ResultSize parametresi, döndürülecek maksimum sonuç sayısını belirtir. Sorguyla eşleşen tüm istekleri döndürmek istiyorsanız, bu parametrenin değeri için “Unlimited” kullanın. Varsayılan değer 1000’dir. Oysa sadece 15 sonuç sergilemek istiyorsanız aşağıdaki örnekteki gibi kullanabilirsiniz. Bu sonuçların daha hızlı gelmesini sağlayacaktır.


[PS] C:\>Get-MailboxDatabase "Mailbox Database Adı" | Get-Mailbox -ResultSize 15

TotalItemSize değeri, posta kutusunun kullanıcı tarafından görülebilen kısmını ifade eder. TotalDeletedItemSize değeri, kullanıcı tarafından görülemeyen Kurtarılabilir Öğeler klasörünün boyutunu ifade eder.
TotalItemSize değeri ProhibitSendReceiveQuota değerini aşarsa veya TotalDeletedItemSize değeri RecoverableItemsQuota değerini aşarsa sistemde “Mailbox is full” hatası içten bile değildir. Bu komut sayesinde etkilenen kullanıcıdan posta kutusundaki öğeleri silmesini isteyebilirsiniz

[PS] C:\>Get-MailboxDatabase "Mailbox Database 1" | Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, itemcount

-StoreMailboxIdentity
Bu parametre yalnızca on-prem Exchange’de kullanılabilir.

StoreMailboxIdentity parametresi, belirtilen veritabanındaki tek bir posta kutusuna ilişkin istatistikleri döndürmek için Database parametresiyle birlikte kullanıldığında posta kutusu kimliğini belirtir. Aşağıdaki değerlerden birini kullanabilirsiniz:

  • MailboxGuid
  • LegacyDN

Bağlantısı kopmuş posta kutuları için, Active Directory nesnesi olmayan ve veritabanındaki bağlantısı kesilmiş posta kutuları hakkında bilgi almak için kullanabilirsiniz. FL komutu ile ise görünümü


[PS] C:\>Get-MailboxStatistics -identity Administrator | fl

Aldığınız bir istatistik veriyi bir CSV dosyasına aktarabilmek için ise aşağıdaki komutu kullanabilirsiniz.

[PS] C:\>Get-MailboxDatabase "Mailbox Database 1" | Get-MailboxStatistics | Sort totalitemsize -desc | Export-CSV C:mailboxes.csv

Kullanıcıların filtrelenebilir bir grupta olmasını istiyorsanız, bunun gibi bir şey kullanabilirsiniz:

[PS] C:\>Get-mailbox -Filter {RecipientTypeDetails -eq "UserMailbox"} | Get-MailboxStatistics | select DisplayName,database

bir Exchange sunucusundan temel kullanıcı posta kutusu istatistiklerini almak için Get-MailboxStatistics cmdlet’i kullanılır. Argüman olarak bir kullanıcı adı belirtilir. Parametresiz çalıştırıldığında, bir kullanıcı adı (Görünen Ad), posta kutusundaki birkaç öğe (ItemCount), bir posta kutusu boyut sınırı (StorageLimitStatus) ve posta kutusuna en son ne zaman erişildiği (LastLogonTime) görüntülenir.

Get-MailboxStatistics kullanici.adi

Bir posta kutusunun toplam boyutunu (içindeki tüm öğelerin boyutu) ve kaldırılan öğelerin boyutunu almak için aşağıdaki komutu çalıştırın:

Get-MailboxStatistics kullanici.adi |ft DisplayName, TotalItemSize, ItemCount, totaldeleteditemsize, storagelimitstatus

About the Author

Melih Melik SÖNMEZ
1976'da İstanbul'da doğdum.