Exchange Management Shell isteksiz yönetici için ipuçları

Bumerang - Yazarkafe

Exchange Management Shell becerileri özellikle Exchange 2010’da daha önce hiç olmadığı kadar değerli.

Artık komut satırı anlayışına geçme zamanı.

PowerShell becerilerine sahip bir Exchange yöneticisiyseniz özellikle exchange server 2010 ve sonrası kullanan şirketler için önemli bir değersinizdir. Exchange Management Shell, yöneticilerin Exchange 2010’ın her yönünü yönetmesini sağlar. Komut satırından anlamadığınızı düşünseniz bile, korkmayın.

Şimdi, Exchange Management Shell ve PowerShell cmdlet’lerini tanımanın zamanı geldi.

EMS, Windows PowerShell 2.0 üzerine kurulmuştur. EMS ve Windows PowerShell, nesneleri büyük gruplar halinde yönetmeye odaklanır;  geleneksel GUI tabanlı araçlarla yönetilmesi zor bir eylemdir. Binlerce nesneniz olduğunda, değiştirmek zorunda olduğunuz üç nesneyi bulmanız zor olabilir. Minimum yazarak ve yorumlayarak bu nesneleri tutarlı bir şekilde bulabilen ve düzenleyebilen bir araç olması paha biçilemez.

Cmdlet’in temelleri

Peki, cmdlet nedir? En basitinden, bir cmdlet, bir fiilin ve bir ismin birleşimidir. EMS, kuruluşunuzdaki tüm posta kutularını listeler. Exchange kuruluşunuzdaki satış posta kutularının bir listesini almak istiyorsanız, aşağıdakine benzer bir komut kullanabilirsiniz:

Get-Mailbox -OrganizationalUnit Sales

Şimdi, MBX02 adlı bir sunucudaki tüm posta kutuları için bilgi almak istediğinizi varsayalım. Bu durumda, aşağıdakine benzer bir komut kullanırsınız:

Get-Mailbox -Server MBX02

cmdlet’ler ile birlikte Piping

Artık temelleri anladığınıza göre, biraz daha derinleşelim. Satış posta kutularının 500 MB’ye ulaştıktan sonra posta gönderip almasını önlemek istediğinizi varsayalım. Bunu yapmak için, 500 MB Kota ayarlamalısınız. İhtiyacınız olan posta kutularını topladıktan sonra kotayı ayarlamanız yeterlidir. Sonuç kümesini bir cmdlet’ten alıp başka bir cmdlet’e aktarmak için pipe simgesini (|) kullanmalısınız. Bunu gerçekleştirmek için, aşağıdaki gibi parçayı birbirne basitce pipe ile bağlamalısınız:

Get-Mailbox -OrganizationalUnit Sales | Set-Mailbox -ProhibitSend 500MB -UseDatabaseQuotaDefaults $false

Bu örnekte, -UseDatabaseQuotaDefaults $ false parametresini ekledim. Bu, veritabanı ayarlarının uygulanmayacağını ve yapılandırmaya çalıştığınız alıcı ayarlarının üzerine yazılmayacağını garanti eder.

Başka bir örnek olarak, yöneticilere sınırsız posta kutusu kotaları vermek istediniz varsayalım. Fakat yönetici posta kutuları birden çok posta kutusu veritabanına ve birden çok sunucuya yayılmış durumda. Bu yöneticilerle ilişkili dağıtım listesi için onu bir cmdlet ile ekleyip ve ProhibitSend kotasını kullanmak zorundasınız.

Get-DistributionGroup Executives | Get-DistributionGroupMembership | Set-Mailbox -ProhibitSend Unlimited -UseDatabaseQuotaDefaults $false

Birkaç dakika içinde basit bir Get-Mailbox cmdlet’inden kullanımından oldukça karmaşık bir kullanıma geçtiniz.

WhatIf parametresi

Script yazma deneyimsizliğinizin Exchange’e zarar verebileceğinden endişeliyseniz, endişe etmeyin. WhatIf parametresi, nesneleri değişiklik yapmadan önce olası değişiklikleri gözlemlemenizi sağlar. Sonuçlardan memnunsanız, PowerShell isteminde aynı cmdlet’i kullanabilir, WhatIf parametresini silebilir ve cmdle’ı yeniden çalıştırabilirsiniz. Örneğin, bir sunucudaki tüm posta kutularını yeni bir sunucu üzerindeki bir veritabanına taşımak için, taşımayı gerçekleştirmeden önce posta kutularının hazır olup olmadığını kontrol etmek için New-MoveRequest cmdlet’i WhatIf parametresiyle birlikte kullanın. Komut aşağıdaki gibi olabilir:

Get-Mailbox -Server ExchangeEX1 | New-MoveRequest -TargetDatabase “ExchangeDB2” –WhatIf 

Komut, tüm posta kutularını Exchange-EX1 sunucusundan ExchangeDB2 veritabanına taşırsanız, gerçekte taşıma işlemini yapmadan ne olacağını simule eder. Posta kutuları taşınmaya hazır değilse, bir hata mesajı alırsınız. Herhangi bir hata yoksa, komutu bu sefer çalıştırmak için WhatIf parametresi olmadan tekrar yürütün:

Get-Mailbox -Server ExchangeEX1 | New-MoveRequest -TargetDatabase “ExchangeDB2”

Cmdlet’lerin otomatik tamamlanması için Tab tuşu

Komutları yazmayı öğrenmeye başladığınızda çok kullanışlı bir tane PowerShell komutları tamamlaması tab kısayol tuşu mevcut. Tab (Sekme) tuşunu kullanarak cmdlet bölümlerini tamamlamanıza izin verir. Fiilin ve ismin birkaç karakterini yazın ve Tab tuşuna basın. Örneğin, Get-M yazmaya başlayabilir ve Get-Mailbox görünene kadar Tab tuşuna basabilirsiniz.  Get-Mailbox komutunu yanlışlıkla geçtiyseniz, istediğiniz komuta erişene kadar cmdlet’ler arasında geri gitmek için Üst Karakter tuşunu basılı tutun ve Sekme tuşuna art arda basın.

Tab sekmesi kazara yanlış yazımları otomatik olarak düzeltir. Hem de Tab sekmesi ile tamamlanan komutlar daha okunur olur. Örneğin, Get-dist yazın ve Tab tuşuna basın. bu durumda, Get-DistributionGroupMembership, get-distributiongroupmembership’den çok daha temiz okunur olur. iki şekilde yazılmasında da komut aynı işi yapar. Tabi bu durum sadece daha temiz bir yazım ve daha kolay okuma sağlar.

Exchange Management Shell kullanımından sizlere bahsetmeye çalıştım. Umarım size yeni bir şeyler öğretme konusunda yardımcı olabilmişimdir. Diğer yandan katıldığınız veya katılmadığınız görüşler ile sorularınızı da yorum kısmından belirtirseniz elimden geldiğince yanıtlamaya çalışırım.