Merhaba Arkadaşlar,
Bugün sizlere exchange database i üzerinde bulunan bir mailbox’ın, powershell kullanılarak dışarı .pst uzantılı bir dosya olarak çıkartılması işlemlerini anlatıyor olacağım.
Öncelikle bu işlemi yapabilmek için gerekli olan gereksinimlerimizi yazalım;
- Sunucuya login olduğumuz kullanıcının ilgili export yetkilerine sahip olması gerekiyor.
- Sunucu üzerinde veya başka bir noktada paylaştırılmış bir klasör ve ilgili izinlerinin olması gerekiyor.
İşlem adımlarımız;
- Login olduğumuz kullanıcının rolünün düzenlenmesi / kontrol edilmesi.
- Network üzerinde bir paylaşım klasörünün oluşturulması ve yetkilerinin düzenlenmesi
- Mailbox’ın .pst uzantılı dosyaya export edilmesi
Mailbox Import Export Role tanımlaması
İşlemlerimizin temeli olan New-MailboxExportRequest komutunu kullanmaya yetkimiz yoksa aşağıdaki ifadeye benzer bir hata alırız. Bunun için mevcut kullanıcımızda ilgili yetkilerin önceden tanımlanmış olması gerekir.
New-MailboxExportRequest : The term ‘New-MailboxExportRequest’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Get-ManagementRoleAssignment -role “Mailbox Import Export” -GetEffectiveUsers | ft
komutu ile bu işlemleri yapmaya yetkili kullanıcı hesaplarını görebiliriz.
New-ManagementRoleAssignment -Role “Mailbox Import Export” -User “Administrator” | ft -AutoSize
komutu ile “Administrator” veya başka bir kullanıcıya bu yetki verilebilir.
Get-ManagementRoleAssignment -role “Mailbox Import Export” -GetEffectiveUsers | ft
sonrasında bu komut ile işlem kontrol edilebilir.
Alternatif olarak;
New-RoleGroup -Name “Exchange Mailbox Import Export” -Roles “Mailbox Import Export” -Members “testdomain\administrator” -DisplayName “Exchange Mailbox Import Export” -Description “This group will provide access to m
ailbox import and export cmdlets within entire Exchange Organization.”
komutu ile bir gruba bu yetkiyi verip sonra istediğimiz kullanıcıyı bu gruba üye yaparız.
Tekrar kontrol edelim
Get-ManagementRoleAssignment -role “Mailbox Import Export” -GetEffectiveUsers | ft
Sonuç olarak New-MailboxExportRequest komutunu kullanabilmemiz için gerekli exchange role tanımlamasının nasıl yapıldığını artık biliyoruz.
Paylaşımlı bir network klasörünün oluşturulması
Artık sunucumuz üzerinde paylaştırılmış bir klasörümüz var.
Export Exchange mailbox ın powershell ile export edilmesi
Öncelikle exchange shell ekranı açıyoruz. Bu ekranı sağ tıklayıp administrator olarak aç dememiz gerekebilir.
Get-Mailbox -ResultSize Unlimited
komutunu çalıştırıyoruz. Komutun başarılı olması exchange shell in düzgün çalıştığını gösterir. Ayrıca export pst yapacağımız kullanıcımızın bilgilerini buradan görebileceğimiz gibi
Get-Mailbox -Identity “ahmet test”
komutu ile “ahmet test” isimli kullanıcımızın alias bilgisini görebiliriz. Artık export pst yapmak istediğimiz kullanıcının alias bilgisine sahibiz.
New-MailboxExportRequest -Mailbox “ahmettest” -FilePath “\\exchangeSrv\pst\ahmettest.pst”
komutu ile export işlemini başlatıyoruz.
Export pst işlemlerinin takip edilmesi
Get-MailboxExportRequest
veya
Get-MailboxExportRequest | Get-MailboxExportRequestStatistics
komutları ile mevcut export işlemlerini takip edebilirsiniz.
Birden fazla kullanıcının mailbox ının export pst yapılması
aşağıdaki komutları kendinize göre düzenleyip çoklu export pst işlemi yapabilirsiniz.
$liste=@(“user1″,”user2″,”user3”) #dilediğiniz kadar kullanıcı aliasını buraya virgüllerle ayırarak yazabiliriz.
foreach ($Mailbox in $liste) {New-MailboxExportRequest -Mailbox $Mailbox -FilePath “\\exchangeSrv\PST\$($_.Mailbox)”}
Özet
Sonuç olarak bu makalemizde bir mailboxın pst kopyasını alabilmek için gerekli işlemleri öğrendiğimizi düşünüyorum. Burada önemli olan, mevcut kullanıcımızın bu işlemi yapabilme yetklilerine sahip olduğunu kontrol etmek, network üzerinde paylaştırılmış ve izinler düzenlenmiş bir klasöre sahip olmak ve son olarak export işlemlerini başlatmak. Paylaştırılmış bir klasör olması çok önemli buraya sunucu üzerindeki bir pathi yazmanız kesinlikle hata verir.
Bir makalemizin daha sonuna geldik , esen kalın.
Kürşat ARI / System Engineer & PowerShell Developer