Büyük organizasyonlar için Exchange Server deployment başlığı ayrı bir uzmanlık gerektirmektedir. Genellikle 1000 ve üstü kullanıcı olan ortamlar için planlamalar çok daha hassas bir şekilde yapılmalıdır. Bu konuda uzun yıllardır kullandığımız Exchange Server Role Requirements Calculator aracı sayesinde işimiz daha kolaylaşmasına karşın gerek buradaki soruların gerçekten tam anlamak ve yine anlamanıza rağmen karşılığını doldurmak bir hayli zor. Örnek en bilinen sorulardan birisi “user message profile” kısmıdır. Yani kullanıcılarınızın ortalama aldıkları ve gönderdikleri mesajları bilmelisiniz ki buna göre excel’ e gerçekçi bilgiler yazabilirsiniz. Bunun sonucu olarak gerçekçi sonuçlar alabilirsiniz. İşte tam bu noktada herkesin aklında acaba bu bilgiyi nasıl alabilirim geliyor. Microsoft çalışanlarından Dan Sheehan tarafından hazırlanan bir Powershell sayesinde artık bu bilgiyi almak çok kolay. Aşağıdaki link üzerinden indirebileceğiniz powershell sayesinde site site bazlı ( kullanıcı bazlı değil, yani ortalama bilgi veriyor, zaten Exchange calculator için bu bilgi yeterli) rapor alabilirsiniz.
https://gallery.technet.microsoft.com/Generate-Message-Profile-7d0b1ef4
Exchange 2010, 2013 ve 2016 da komut seti sorunsuz çalışmaktadır. 2007 için ayrı bir komut seti hazırlayacağını söylemişti ama ben henüz göremedim.
Çalışma mantığı son derece basit, ama tahmin edeceğiniz gibi kullanıcılarınızın mesaj alma ve gönderme raporları için message tracking loglarını kullanıyor. Yani eğer son 90 günlük log tutuyorsanız 90 günlük rapor alabilirsiniz.
Kullanımı da son derece basit, eğer komut setini indirmiş iseniz direkt olarak çalıştırabilirsiniz.
Gördüğünüz gibi ben direkt olarak “.\Generate-MessageProfile.ps1” diyerek çalıştırdım. Daha sonra bana tarih aralığı sordu, bende son bir yılı girdim, tabiki hemen ardından son 30 günlük message tracking loglarını sakladığımı anlayıp bu konuda bir bilgilendirme mesajı verdi ama sorunsuz olarak komut çalışmaya devam etti.
Burada benim kullandığım Exchange server için bölgesel ayarlar aşağıdaki gibidir
Siz eğer tarih konusunda sorun yaşarsanız aşağıdaki gibi giriş yapmayı deneyebilirsiniz
MM/DD/YYYY
Komutun parametreleri hakkında daha fazla bilgiyi birazdan paylaşacağım.
Komutu benim yaptığım gibi direkt çalıştırır ve sadece zaman parametresi verirseniz komut otomatik çalışıyor.
Komutu çalıştırdıktan sonra site içerisindeki Exchange organizasyonunuzun durumuna göre farklı sürelerde tamamlanacaktır. Ben tek site içerisinde 44 posta kutusu ve 30 günlük bir message tracking log için 9 dk bekledim. Benim gibi parametresiz çalıştırırsanız herhangi bir sonuç gelmez. Sonucu görüntülemek için yine komut setinde $MessageProfile yazmanız yeterlidir (sonucu değişken olarak kayıt eder). Bende gördüğünüz gibi ortalama mesaj boyutları alma ve göndermeye göre çok yüksek değil. Tabiki bu bir test ortamı olduğu için rakamlar çok yüksek değildir. Tam tersi eğer rakamlar yüksek gelir ise bu durumda parametrelere geçebiliriz.
Öncelikle bildiğiniz gibi message tracking logları içerisinde Exchange Server HealthMailbox olarak bildiğimiz ve Exchange Managed Availability’ nin bir parçası olan bu posta kutusu nedeni ile çok fazla mail alıp gönderilmektedir. Bunları ayırmak daha doğru bir sonuç sağlayacaktır.
Bu nedenle aşağıdaki gibi bir komut çalıştırabiliriz
Generate-MessageProfile.ps1 -StartOnDate 12/1/2016 -EndBeforeDate 12/6/2016 -ExcludeHealthData -OutCSVFile AllSites.CSV
Burada ilk iki parametre başlangıç ve bitiş tarihlerini temsil etmektedir. Ardından ExcludeHealthData ile HealthMailboxes ve extest_ posta kutularını rapordan hariç tutuyoruz. Son olarak sonucu bir CSV dosyasına yazıyoruz.
Bir diğer örnek komut ise tüm site yapıları için değil de sadece belirli site yapıları için bu raporu çalıştırmanızı sağlar (burada site ismi Rize ile başlayan siteların raporunu alabilirsiniz. Başka bir kullanım örneği ise “MerkezSite”,”Rize*” yani MerkeziSite ve ismi Rize ile başlayan site’ lar şeklinde filtrelenebilir.
Generate-MessageProfile.ps1 -ADSites Rize* -StartOnDate 12/1/2016 -EndBeforeDate 12/2/2016 -Verbose -Debug
Komutun çıktısını değişken olarak kayıt eder ve tabi Verbose, Debug parametreleri sayesinde de komut çalışırken ekrana daha detaylı bilgiler getirir.
Eğer komut seti zor geliyor ise aşağıdaki komut ile parametreleri ara yüz ile de kullanabilirsiniz (Powershell 3 ve üstü için geçerlidir)
Show-Command .\Generate-MessageProfile.ps1
Not: Eğer hata alırsanız PS üzerine sağ tıklayın ve özellikler bölümünde en altta yer alan unlock butonuna tıklayınız.
Son olarak CSV dosyasının içeriğini sizler ile paylaşmak istiyorum.
Özellikle büyük organizasyonlar için gerçekten çok yararlı bir poweshell, yeni bir deployment planınız olmasa bile en azından site bazlı ortalama mesaj profili çıkarmanız güzel olur bence.
Makalemin sonuna geldik, umarım faydalı bir makale olmuştur. Bir sonraki makalemde görüşmek üzere.