IT & IoT Security | Cloud | It's all about the life itself

Nothing in life is as important as you think it is, while you are thinking about it.

Exchange Server 2013 , Shell ile Mailbox Yönetimi

Merhaba,

Exchange “recipient” objelerinin yönetimi,Exchange Server yöneticilerinin günlük rutinleri arasındadır. “Recipient” objesi dendiğinde ilk akla gelen obje genellikle mailbox objesidir. Elbette ki mailbox’lar en çok vakit harcanan objelerdir . Diğer “recipient” objeleri ise; distribution group’lar , mail-enabled objeler , public folder’lar , contact’lar , room mailbox’lar vb. şeklide sıralanabilir. Genel olarak Active Directory’deki her mail-enabled obje bir “recipient” ‘tır denebilir.

Yeni nesil Exchange server organizasyonunda “recipient” yönetimini Exchange Admin Center’dan yapabilirsiniz. Fakat binlerce recipient objesinin bulunduğu devasa exchange organizasyonlarında bu tür işlemleri, ismi “bulk” şeklinde de geçen, toplu hallerde yapmak gerekir. Bu durumda ise Exchange Management Shell, gereken ortamı sağlar.

Yazımda; “mailbox” yönetiminde kopleks scriptler oluşturarak günlük rutin işleri yönetmek için gereken shell komutları temellerinden bahsetmek istiyorum

Exchange Management Shell’ini açarak devam edebilirsiniz yada bir workstation’dan windows powershell ile remoting’i kullanarak exchange powershell virtual directory’sine bağlanabilirsiniz.

Domain Controller üzerinden windows powershell ile Exchange’e session açarak devam edeceğim.

clip_image002

Yeni session’ı “import” etmeyi unutmayınız! Bu “session” ile yeni mailbox ekleme,değiştirme ve silme işlemleri yapalım. Böylece günlük rutin görevler arasında en çok yapılan mailbox oluşturma, silme ve güncelleme işlemlerini incelemiş olacağız.

Parola için bir değişken belirlemek istiyorum.

$parola=ConvertTo-SecureString -AsPlainText Password1 –Force

clip_image004

New-Mailbox cmdlet’ini kullanarak bir account ve onunla eşleştirilmiş bir mailbox oluşturduk. Sonrasında mailbox’a dair bir takım nitelikleri güncelleyebiliriz.

clip_image006

Mailbox’ın, Mailbox database’den varsayılanda aldığı bir kaç özelliği değiştirmiş olduk.

Active Directory user objesinden Exchange atrribute’ları silmek için ( mailbox’ını da silinecek şekilde işaretlemek için ) aşağıdaki cmdlet’i kullanabiliriz.

Disable-Mailbox -Identity baris -Confirm:$false

Bu durumda disconnected mailbox 30 gün içinde ( default retention period 30 gündür ) silinir fakat AD account objesi silinmez! Mailbox objesini ve AD account objesini bir cmdlet ile temizlemek isterseniz aşağıdaki cmdlet bu işlem için yeterlidir.

Remove-Mailbox –identity baris –confirm:$false

clip_image008

New-Mailbox cmdlet’ini kullanarak yeni bir AD User Account’u ve Exchange Mailbox’ı oluşturduk. AD veritabanında bulunan bir kullanıcı objesi için mailbox objesi oluşturmak istersek, üstteki komutu kullanabiliriz.

Mailbox’ı olmayan AD User accout’larını listeleyip, onlara mailbox atama işini aşağıda görüldüğü gibi pipeline ile birleştirilmiş iki cmdlet ile yapabilirsiniz.

clip_image010

Pipelining, bir cmdlet’in output’unu bir sonraki cmdlet’e aktarma konusunda müthiş bir icat değil mi ? 🙂

Bir önceki örnekte set-mailbox ile bir mailbox objesinin bir kaç niteliğini değiştirmiştik. Şimdi pipelining ile bu işlemi bir bulk işlem haline getirelim.

clip_image012

Üstte görüldüğü gibi get-mailbox ile elde ettiğimiz output’u pipeline ile set-mailbox cmdlet’ine gönderdik ve ilgili OU’nun altındaki kullanıcı objelerinin mailbox niteliklerinde bir kaç güncelleme yaptık.

Önceki örneğimizde parola için bir değişken kullanmıştım. Bu tür bir değişken ile bir script hazırlayarak tüm işlemi/süreci otomatize etmek mümkündür. Ama parola girme işlemini bir account operator’a yaptıracaksanız farklı yöntemler de kullanabilirsiniz.

clip_image014

Üstteki ilk örnekte parola, account operator’ün klavyeden yazması sonucunda okunacak. İkinci örnekte, windows credential ekranına girilen parola kutucuğu okunacak ve new-mailbox cmdlet’ine verilecek.

Mailbox yaratırken bazı nitelikleri new-mailbox cmdlet’ini kullanarak belirleyemeyiz. Bu niteliklere city,state,company nitelikleri örnek verilebilir. Bu tip nitelikleri değiştirmek için set-user cmdlet’ini kullanmanız gerekir.

clip_image016

Set-user cmdlet’inin parametrelerine bakmak isterseniz get-help set-user –detailed cmdlet’ini kullanabilirsiniz.

ilgili Kullanıcı için yeni nitelikleri görmek istersek;

clip_image017

Üstteki cmdlet ile output almak yeterli olacaktır.

Yazımın sonuna geldim. Örneklerde, yeni kullanıcı ve beraberinde yeni mailbox oluşturma işlemini , varolan kullanıcıya mailbox atama işlemini , exchange niteliklerini ve/veya beraberinde ad account’unu silme işlemini, cmdlet’leri pipeline ile birleştirme örneklerini incelemiş oldum. Gerisi hayal gücünüz ile sınırlı 🙂

Herkese sorunsuz ve neşeli günler dilerim.