Microsoft Exchange otomasyonu


Yinelenen Microsoft Exchange ve Exchange Online görevlerini PowerShell ile otomatikleştirmek, başarılı BT uzmanları ve sistem mühendisleri için çok önemlidir. Bu makalede, Microsoft Exchange'i yönetmek için altı PowerShell kullanım örneği incelenmektedir.

Microsoft Exchange ve Exchange Online, birçok kuruluşta e-posta, takvim ve kişiler için temel taşı olmaya devam ediyor. Exchange ortamlarının karmaşıklığı arttıkça yöneticiler de yönetim görevlerini kolaylaştıracak araçlar ararlar. Güçlü komut satırı kabuğu ve komut dosyası diliyle PowerShell, Exchange'i (Çevrimiçi) geleneksel grafik kullanıcı arayüzlerinden (GUI'ler) daha verimli bir şekilde yönetmek için sağlam bir çözüm sunar.

Microsoft Exchange yönetimi için neden PowerShell kullanılmalı?

  • Otomasyon: PowerShell komut dosyaları tekrarlanan görevleri otomatikleştirerek tutarlılık sağlar ve zamandan tasarruf sağlar.
  • Çok çeşitli özelliklere erişim: Bazı Exchange ayarlarına ve özelliklerine yalnızca PowerShell üzerinden erişilebilir, bu da sistem üzerinde daha fazla kontrol sağlar.
  • Toplu işlemler: PowerShell, birden fazla posta kutusunun aynı anda güncellenmesi gibi, GUI'ler aracılığıyla zahmetli olan görevlerin toplu olarak işlenmesine olanak tanır.
  • Uzaktan yönetim: Yöneticiler, birden fazla konumdaki sunucuları yönetmek için bir gereklilik olan PowerShell aracılığıyla Exchange ortamlarını uzaktan yönetebilir.
  • Entegrasyon: PowerShell komut dosyaları diğer sistem ve hizmetlerle entegre olarak BT yönetimine birleşik bir yaklaşım sağlayabilir.

Microsoft Exchange PowerShell otomasyonuna yönelik bazı gerçek hayattaki kullanım örneklerine bir göz atalım.

Cmdlet 1: Posta Kutusunu Al

Get-Mailbox, Exchange (Çevrimiçi) ortamınızdaki posta kutuları hakkındaki bilgileri alır.

Bu tek satırlık yazı, tüm kuruluştaki posta kutusu ayarlarını ve durumunu hızlı bir şekilde denetler:

Get-Mailbox -ResultSize Unlimited | Format-Table DisplayName, ServerName, ProhibitSendQuota 

Cmdlet 2: Get-EXOMailbox

Get-EXOMailbox yalnızca Exchange Online'da mevcuttur. Exchange Online posta kutusu özelliklerinin ve ayarlarının ayrıntılarını sağlar. Aşağıdaki örnek, Get-EXOMailbox'ı Get-EXOMailboxStatistics cmdlet'iyle birleştirir ve ortamdaki en büyük 10 posta kutusunu gösterir.

Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxStatistics | Sort-Object TotalItemSize -Descending | Select-Object DisplayName,TotalItemSize -First 10 

Cmdlet 3: Posta Kutusunu Ayarla

Set-Mailbox cmdlet'i posta kutusu özelliklerini yapılandırmanıza olanak tanır. Kotalar veya izinler gibi 130'dan fazla posta kutusu ayarını değiştirebilirsiniz. Aşağıdaki kod örnekleri -WhatIf parametresini içerir. Önce sonuçların simüle edilmesine ve test edilmesine olanak tanır.

 Get-User | where {$_.Department -eq "Sales"} | Get-Mailbox | Set-Mailbox -ProhibitSendQuota 5GB -ProhibitSendReceiveQuota 5GB -IssueWarningQuota 4GB -Whatif 

Cmdlet 4: Get-DistributionGroup

Mevcut dağıtım gruplarını mı bulmak istiyorsunuz? O halde Get-DistributionGroup doğru cmdlet'tir. Aşağıdaki örnek, "Danışmanlık" adını içeren dağıtım gruplarının tüm özniteliklerini gösterir.

Get-DistributionGroup -Filter {name -like "*Consulting*"} |Select-Object * |Out-GridView

Cmdlet 5: Yeni Posta Kutusu

Yeni Posta Kutusu ile bir veya daha fazla Exchange posta kutusu oluşturabilirsiniz. İşte bir csv dosyasına dayalı olarak yeni posta kutuları oluşturmaya yönelik bir örnek.

$mbxs = Import-Csv 'C:\users.csv'Foreach ($mbx in $mbxs) {New-Mailbox -Name $mbx.DisplayName -DisplayName $mbx.DisplayName -MicrosoftOnlineServicesID $mbx.UserPrincipalName -Password (ConvertTo-SecureString -String 'YourPassword' -AsPlainText -Force) -ResetPasswordOnNextLogon $true -MailboxPlan 'MailboxPlan'}

Cmdlet 6: Set-MailboxAutoReplyConfiguration

Kullanıcılarınız için ofis dışında bildirimlerini etkinleştirmek için Set-MailboxAutoReplyConfiguration cmdlet'ini kullanın. Mesajları sınırsız bir süre için etkinleştirmenize veya belirli bir süre için planlamanıza olanak tanır.

$autoReplyParams = @{
     Identity = "john@doe.com"
     AutoReplyState = "Enabled"
     ExternalMessage = "Hello, I'm currently not in the office."
     InternalMessage = "Hello colleague, I'm currrently not in the office"
} 
Set-MailboxAutoReplyConfiguration @autoReplyParams

Çözüm

Şirket İçinde veya Çevrimiçi olarak Exchange'i yönetmek için PowerShell'i kullanmak, yüksek düzeyde verimlilik, esneklik ve kontrol sağlar. Yukarıda listelenen cmdlet'ler, yöneticilerin çok çeşitli görevleri GUI'ler aracılığıyla olduğundan daha etkili bir şekilde gerçekleştirmelerine yönelik temel araçlardır. Yöneticiler bu cmdlet'lere hakim olarak Exchange ortamlarının iyi yönetilmesini, güvenli olmasını ve kuruluşlarının ihtiyaçlarına göre uyarlanmasını sağlayabilirler. "PowerShell ile Exchange (Çevrimiçi) yönetiminizi basitleştirin" web seminerimizde Exchange'i (Çevrimiçi) PowerShell ile yönetme hakkında daha fazla bilgi edinin.

İlgili makaleler