İçeriğe geç

Microsoft 365 IMAP Migration Takibi, EWS Run Tests ve E3 Olmadan MRM Saklama Etiketi Tanımlama

Microsoft 365’e mail geçişlerinde en çok karşılaşılan konulardan biri migration durumunun panelde yeterince detaylı görünmemesidir. Özellikle IMAP migration işlemlerinde bazı mailbox’lar uzun süre Syncing durumunda kalabilir. Panelde işlem devam ediyor gibi görünür ama kaç mail aktarıldı, kaç mail kaldı, migration gerçekten ilerliyor mu sorularının cevabı net olmayabilir.

Diğer sık karşılaşılan konu ise Microsoft 365 tarafında saklama etiketi ve arşivleme politikası oluşturma sürecidir. Özellikle E3 lisans olmayan ortamlarda Microsoft 365 panelinde saklama etiketi veya MRM policy oluştururken izin, organizasyon veya lisans kaynaklı hatalar görülebilir. Bu noktada gözden kaçan kritik işlem şudur:

Microsoft 365 Admin Center > Support > EWS / Throttling Run Tests

Bu destek tanılaması çalıştırılmadan bazı tenant’larda panel tarafında MRM etiketi oluşturma ekranı sağlıklı ilerlemeyebilir. Ardından Exchange Online PowerShell ile MRM retention tag ve retention policy oluşturmak çok daha kontrollü bir yöntem olur.

Bu yazıda üç ana konuyu ele alacağız:

  • IMAP migration durumunu PowerShell ile takip etme
  • Microsoft 365 destek panelinden EWS Run Tests çalıştırma
  • E3 olmadan Exchange MRM saklama etiketi ve archive policy tanımlama

1. Exchange Online PowerShell’e Bağlanma

Öncelikle Exchange Online PowerShell modülünü kurup Microsoft 365 tenant’ına bağlanıyoruz.

Install-Module ExchangeOnlineManagement -Scope CurrentUser
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline

Bağlantı tamamlandıktan sonra aktif migration batch’leri görmek için şu komut çalıştırılır:

Get-MigrationBatch | Format-Table `
Identity,
Status,
TotalCount,
ActiveCount,
SyncedCount,
SucceededCount,
FailedCount,
StoppedCount,
LastSyncedTime -Auto

Bu komut batch seviyesinde genel durumu gösterir. Ancak mailbox bazlı detay için Get-MigrationUserStatistics komutunu kullanmak gerekir. Microsoft, migration kullanıcı detayları için bu cmdlet’i kullanır.


2. Syncing Durumunda Kalan Mailbox’ı Bulma

Migration panelinde bazı kullanıcılar uzun süre Syncing durumunda kalabilir. Bu durumda ilgili mailbox’ın gerçekten ilerleyip ilerlemediğini görmek için aşağıdaki komut kullanılabilir.

Get-MigrationUser | Get-MigrationUserStatistics |
Where-Object { $_.Status -eq "Syncing" -or $_.StatusSummary -like "*Sync*" } |
Format-Table `
Identity,
Status,
StatusSummary,
PercentageComplete,
SyncedItemCount,
TotalItemsInSourceMailboxCount,
SkippedItemCount,
BytesTransferred,
LastSuccessfulSyncTime -Auto

Burada özellikle şu alanlar önemlidir:

Status
StatusSummary
PercentageComplete
SyncedItemCount
TotalItemsInSourceMailboxCount
SkippedItemCount
BytesTransferred
LastSuccessfulSyncTime

Eğer BytesTransferred artıyor ve LastSuccessfulSyncTime güncelleniyorsa migration hâlâ devam ediyor demektir.
Bu değerler uzun süre değişmiyorsa ilgili mailbox kaynak IMAP sunucusunda, büyük klasörde, bozuk mailde veya bağlantı limitinde takılmış olabilir.


3. Kalan Mail Sayısını Hesaplama

Microsoft 365 paneli IMAP migration sırasında kalan mail sayısını her zaman net göstermez. Ancak PowerShell tarafında TotalItemsInSourceMailboxCount ve SyncedItemCount değerleri dolu gelirse kalan mail sayısı hesaplanabilir.

$user = "kullanici@domain.com"

$s = Get-MigrationUserStatistics -Identity $user -IncludeReport -IncludeSkippedItems

$total = $s.TotalItemsInSourceMailboxCount
$synced = $s.SyncedItemCount

[PSCustomObject]@{
Mailbox = $s.Identity
Durum = $s.Status
DurumOzeti = $s.StatusSummary
Yuzde = $s.PercentageComplete
ToplamMail = $total
AktarilanMail = $synced
KalanMail = if ($total -ne $null -and $synced -ne $null) {
$total - $synced
} else {
"Toplam mail sayısı Microsoft tarafından döndürülmedi"
}
AtlananMail = $s.SkippedItemCount
AktarilanVeri = $s.BytesTransferred
SonBasariliSync = $s.LastSuccessfulSyncTime
Hata = $s.ErrorSummary
} | Format-List

Eğer toplam mail sayısı boş gelirse tüm migration detaylarını görmek için:

Get-MigrationUserStatistics -Identity "kullanici@domain.com" -IncludeReport -IncludeSkippedItems |
Format-List *

Buradaki trik nokta şudur:

IMAP migration’da kalan mail sayısı her zaman direkt görünmez. Bazen ilerlemeyi BytesTransferred, SyncedItemCount, SkippedItemCount ve LastSuccessfulSyncTime üzerinden okumak gerekir.


4. Migration Raporunu CSV Olarak Alma

Tüm kullanıcıların migration durumunu raporlamak için aşağıdaki komut kullanılabilir.

Get-MigrationUser | Get-MigrationUserStatistics |
Select-Object `
Identity,
Status,
StatusSummary,
PercentageComplete,
SyncedItemCount,
TotalItemsInSourceMailboxCount,
@{Name="KalanMail";Expression={
if ($_.TotalItemsInSourceMailboxCount -ne $null -and $_.SyncedItemCount -ne $null) {
$_.TotalItemsInSourceMailboxCount - $_.SyncedItemCount
} else {
$null
}
}},
SkippedItemCount,
BytesTransferred,
LastSuccessfulSyncTime,
ErrorSummary |
Export-Csv "C:\temp\migration-durum-raporu.csv" -NoTypeInformation -Encoding UTF8

Bu rapor özellikle büyük mailbox taşıma işlemlerinde ilerlemeyi takip etmek için oldukça faydalıdır.


5. Hedef Mailbox Boyutunu Kontrol Etme

Migration istatistiklerine ek olarak Microsoft 365 tarafında oluşan mailbox boyutu da kontrol edilmelidir.

Get-EXOMailboxStatistics -Identity "kullanici@domain.com" |
Format-List DisplayName,ItemCount,TotalItemSize,LastLogonTime

Bu komut hedef Microsoft 365 mailbox’ındaki toplam öğe sayısını ve mailbox boyutunu gösterir.

Kaynak IMAP tarafındaki mail sayısı ile hedef mailbox item count birebir aynı olmayabilir. Bunun nedeni sistem klasörleri, atlanan öğeler, bozuk mailler veya IMAP migration davranışı olabilir. Yine de mailbox boyutunun artıp artmadığını görmek için bu komut kullanışlıdır.


6. EWS Run Tests Neden Önemli?

Microsoft 365 tarafında bazı işlemler yalnızca panelden yapılmaya çalışıldığında beklenmeyen izin veya organizasyon hataları verebilir. Özellikle E3 lisans olmayan tenant’larda saklama etiketi veya MRM yapılandırma ekranında şu tarz sorunlar görülebilir:

Bu işlemi yapmak için organizasyon izni gerekli.
Bu özellik kuruluşunuzda etkin değil.
Retention tag oluşturulamadı.
Organization customization gerekli.

Bu noktada genellikle gözden kaçan işlem Microsoft 365 destek tanılamasıdır.

Yapılması gereken işlem:

Microsoft 365 Admin Center
Support / Help & support
EWS Throttling veya Increase EWS Throttling Policy
Run Tests

Microsoft’un Exchange Online self-help diagnostics dokümanında EWS throttling testinin özellikle EWS kullanan mailbox migration işlemlerinde throttling politikasının fazla kısıtlayıcı olup olmadığını kontrol etmek için kullanıldığı belirtilir.

Burada önemli ayrım şudur:

Bu işlem doğrudan IMAP migration’ı hızlandırmak için değildir.
Ancak Microsoft 365 tenant’ında Exchange servis tarafındaki bazı destek tanılamalarını ve servis kontrollerini çalıştırdığı için, panelde takılan bazı Exchange yönetim ekranlarının sağlıklı ilerlemesine yardımcı olabilir.

Özellikle MRM saklama etiketi oluşturma ekranı izin veya organizasyon hatasına düşüyorsa, önce bu testin çalıştırılması pratikte fayda sağlayabilir.


7. Microsoft 365 Admin Center’dan EWS Run Tests Çalıştırma

Adımlar şu şekildedir:

  1. Microsoft 365 Admin Center’a admin kullanıcıyla giriş yapılır.
  2. Sol menüden Support veya Help & support bölümüne girilir.
  3. Arama alanına şu ifadelerden biri yazılır:
EWS Throttling

veya

Increase EWS Throttling Policy
  1. Çıkan önerilerden Increase EWS Throttling Policy seçilir.
  2. Run Tests butonuna basılır.
  3. Tanılama tamamlanana kadar beklenir.
  4. Eğer seçenek sunulursa geçici throttling gevşetme süresi seçilir.
  5. İşlem tamamlandıktan sonra MRM etiketi veya retention policy ekranı yeniden denenir.

Microsoft Answers üzerinde de aynı akış, Microsoft 365 Admin Center’da Support > New service request bölümünden throttling aratılıp Increase EWS Throttling Policy seçilmesi ve ardından Run Tests çalıştırılması şeklinde tarif edilir.


8. MRM ile Purview Retention Label Karıştırılmamalı

Microsoft 365 tarafında “saklama etiketi” denildiğinde iki farklı yapı karıştırılabiliyor:

  1. Microsoft Purview retention label / retention policy
  2. Exchange MRM retention tag / retention policy

Purview retention label daha yeni ve merkezi bir yapıdır. Ancak her lisans ve tenant kombinasyonunda panel tarafında aynı esneklik sunulmayabilir.

Exchange MRM ise mailbox yaşam döngüsü yönetimi için kullanılan klasik Exchange yapısıdır. Microsoft, genel retention işlemleri için Purview retention policies ve labels kullanılmasını önerirken, mesajları archive mailbox’a taşımak için MRM kullanımının devam ettiğini belirtir.

Bu nedenle amaç şu ise:

Belirli yaştan eski mailleri otomatik archive mailbox’a taşı

kullanılacak yapı çoğu zaman:

Exchange MRM Retention Tag + Retention Policy

olmalıdır.


9. Organization Customization Kontrolü

Bazı Microsoft 365 tenant’larında Exchange Online tarafında ilk kez gelişmiş yapılandırma yapılırken organization customization aktif olmayabilir.

Kontrol için:

Get-OrganizationConfig | Format-List IsDehydrated

Eğer IsDehydrated değeri True ise şu komut çalıştırılır:

Enable-OrganizationCustomization

Microsoft dokümanına göre Enable-OrganizationCustomization komutu Exchange Online organizasyonunda yalnızca bir kez çalıştırılır. Eğer daha önce çalıştırıldıysa tekrar çalıştırmaya gerek yoktur.

Eğer şu tarz hata alınıyorsa:

The command you tried to run isn't currently allowed in your organization.
To run this command, you first need to run the command:
Enable-OrganizationCustomization.

önce organization customization kontrol edilmelidir.


10. Archive Mailbox Açık mı Kontrol Etme

MRM policy ile eski mailleri archive mailbox’a taşımak için kullanıcının archive mailbox’ı açık olmalıdır.

Kontrol:

Get-Mailbox -Identity "kullanici@domain.com" |
Format-List DisplayName,PrimarySmtpAddress,ArchiveStatus,ArchiveName,RetentionPolicy

Archive kapalıysa açmak için:

Enable-Mailbox -Identity "kullanici@domain.com" -Archive

Tüm kullanıcıların archive durumunu görmek için:

Get-Mailbox -ResultSize Unlimited |
Select-Object DisplayName,PrimarySmtpAddress,ArchiveStatus,RetentionPolicy |
Format-Table -Auto

Trik nokta:

RetentionAction MoveToArchive kullanılacaksa ArchiveStatus aktif olmalıdır.

Archive mailbox açık değilse policy atanmış görünse bile eski mailler beklenen şekilde archive’a taşınmayabilir.


11. MRM Retention Tag Oluşturma

Örnek olarak 2 yıldan eski mailleri archive mailbox’a taşıyacak bir MRM etiketi oluşturalım.

New-RetentionPolicyTag `
-Name "Archive-730Days" `
-Type All `
-RetentionEnabled $true `
-AgeLimitForRetention 730 `
-RetentionAction MoveToArchive

Parametrelerin anlamı:

Name                  : Retention tag adı
Type All : Mailbox genelinde varsayılan etki
RetentionEnabled : Etiket aktif mi?
AgeLimitForRetention : Gün cinsinden yaş sınırı
RetentionAction : Süre dolunca yapılacak işlem
MoveToArchive : Archive mailbox’a taşı

Farklı süreler için örnekler:

# 1 yıldan eski mailleri archive mailbox’a taşı
New-RetentionPolicyTag `
-Name "Archive-365Days" `
-Type All `
-RetentionEnabled $true `
-AgeLimitForRetention 365 `
-RetentionAction MoveToArchive
# 3 yıldan eski mailleri archive mailbox’a taşı
New-RetentionPolicyTag `
-Name "Archive-1095Days" `
-Type All `
-RetentionEnabled $true `
-AgeLimitForRetention 1095 `
-RetentionAction MoveToArchive

Microsoft’un Exchange Online MRM dokümanında retention policy’nin retention tag oluşturma, policy’ye ekleme ve mailbox’a uygulama adımlarıyla çalıştığı belirtilir.


12. Retention Policy Oluşturma

Oluşturulan retention tag’i bir retention policy içine ekliyoruz.

New-RetentionPolicy `
-Name "Migration Archive Policy" `
-RetentionPolicyTagLinks "Archive-730Days"

Oluşan policy’yi kontrol etmek için:

Get-RetentionPolicy "Migration Archive Policy" |
Format-List Name,RetentionPolicyTagLinks

Tüm retention policy’leri listelemek için:

Get-RetentionPolicy |
Select-Object Name,RetentionPolicyTagLinks |
Format-Table -Auto

Tüm retention tag’leri listelemek için:

Get-RetentionPolicyTag |
Select-Object Name,Type,AgeLimitForRetention,RetentionAction,RetentionEnabled |
Format-Table -Auto

13. Retention Policy’yi Kullanıcıya Atama

Tek kullanıcıya policy atamak için:

Set-Mailbox -Identity "kullanici@domain.com" `
-RetentionPolicy "Migration Archive Policy"

Kontrol:

Get-Mailbox -Identity "kullanici@domain.com" |
Format-List DisplayName,PrimarySmtpAddress,ArchiveStatus,RetentionPolicy

Birden fazla kullanıcıya CSV ile uygulamak için örnek CSV:

UserPrincipalName
ahmet@domain.com
mehmet@domain.com
ayse@domain.com

PowerShell:

Import-Csv "C:\temp\users.csv" | ForEach-Object {
Set-Mailbox -Identity $_.UserPrincipalName `
-RetentionPolicy "Migration Archive Policy"
}

14. Managed Folder Assistant’ı Çalıştırma

Retention policy atandıktan sonra işlem hemen görünmeyebilir. Exchange Online tarafında bu işlemleri Managed Folder Assistant uygular.

Tek kullanıcı için manuel tetikleme:

Start-ManagedFolderAssistant -Identity "kullanici@domain.com"

CSV ile toplu tetikleme:

Import-Csv "C:\temp\users.csv" | ForEach-Object {
Start-ManagedFolderAssistant -Identity $_.UserPrincipalName
}

Microsoft dokümanında da retention tag ve policy uygulandıktan sonra Managed Folder Assistant mailbox’ı işlediğinde mesajların silineceği veya archive’a taşınacağı belirtilir.

Trik nokta:

Policy atandıktan sonra mailler hemen archive’a taşınmayabilir.
Managed Folder Assistant’ın mailbox’ı işlemesi gerekir.

15. Panelde MRM Etiketi Oluşmuyorsa Kontrol Sırası

E3 lisans olmayan veya panelde retention ekranı sorun çıkaran Microsoft 365 ortamlarında şu sıra izlenebilir:

1. Exchange Online PowerShell bağlantısını kur

Connect-ExchangeOnline

2. Organization customization kontrol et

Get-OrganizationConfig | Format-List IsDehydrated

Gerekirse:

Enable-OrganizationCustomization

3. Microsoft 365 Admin Center’da EWS Run Tests çalıştır

Admin Center > Support > Help & support
Search: EWS Throttling
Increase EWS Throttling Policy
Run Tests

4. Archive mailbox açık mı kontrol et

Get-Mailbox -Identity "kullanici@domain.com" |
Format-List ArchiveStatus,RetentionPolicy

5. Archive kapalıysa aç

Enable-Mailbox -Identity "kullanici@domain.com" -Archive

6. Retention tag oluştur

New-RetentionPolicyTag `
-Name "Archive-730Days" `
-Type All `
-RetentionEnabled $true `
-AgeLimitForRetention 730 `
-RetentionAction MoveToArchive

7. Policy oluştur

New-RetentionPolicy `
-Name "Migration Archive Policy" `
-RetentionPolicyTagLinks "Archive-730Days"

8. Policy’yi mailbox’a ata

Set-Mailbox -Identity "kullanici@domain.com" `
-RetentionPolicy "Migration Archive Policy"

9. Managed Folder Assistant çalıştır

Start-ManagedFolderAssistant -Identity "kullanici@domain.com"

16. En Sık Yapılan Hatalar

IMAP migration’da sadece panele bakmak

Panel genel durumu gösterir ama detay için PowerShell kullanılmalıdır.

Get-MigrationUserStatistics -Identity "kullanici@domain.com" -IncludeReport -IncludeSkippedItems

Syncing durumunu hemen hata sanmak

Büyük mailbox’larda uzun süre Syncing görünmesi normal olabilir. Asıl kontrol edilmesi gerekenler:

BytesTransferred
LastSuccessfulSyncTime
SyncedItemCount
SkippedItemCount
ErrorSummary

EWS Run Tests adımını atlamak

Bazı tenant’larda panelde MRM veya retention ekranı beklenmeyen izin hatalarına düşebilir. Microsoft 365 destek panelindeki EWS / throttling testini çalıştırmak bu noktada önemli bir adımdır.


Purview Retention Label ile Exchange MRM Tag’i karıştırmak

Purview retention label farklıdır.
Exchange MRM retention tag farklıdır.

Eski mailleri archive mailbox’a taşımak için genellikle Exchange MRM kullanılır.


Archive mailbox açmadan MoveToArchive policy atamak

MoveToArchive action kullanılacaksa archive mailbox açık olmalıdır.


Policy atandıktan sonra hemen sonuç beklemek

Retention policy atandıktan sonra Managed Folder Assistant’ın mailbox’ı işlemesi gerekir.


17. Faydalı Toplu Komutlar

Tüm migration durumunu listele

Get-MigrationUser | Get-MigrationUserStatistics |
Select-Object `
Identity,
Status,
StatusSummary,
PercentageComplete,
SyncedItemCount,
TotalItemsInSourceMailboxCount,
SkippedItemCount,
BytesTransferred,
LastSuccessfulSyncTime |
Format-Table -Auto

Syncing mailbox’ları listele

Get-MigrationUser | Get-MigrationUserStatistics |
Where-Object { $_.Status -eq "Syncing" -or $_.StatusSummary -like "*Sync*" } |
Format-Table Identity,Status,StatusSummary,PercentageComplete,SyncedItemCount,BytesTransferred,LastSuccessfulSyncTime -Auto

Migration raporu al

Get-MigrationUser | Get-MigrationUserStatistics |
Select-Object `
Identity,
Status,
StatusSummary,
PercentageComplete,
SyncedItemCount,
TotalItemsInSourceMailboxCount,
SkippedItemCount,
BytesTransferred,
LastSuccessfulSyncTime,
ErrorSummary |
Export-Csv "C:\temp\migration-report.csv" -NoTypeInformation -Encoding UTF8

Retention policy atanmış kullanıcıları listele

Get-Mailbox -ResultSize Unlimited |
Select-Object DisplayName,PrimarySmtpAddress,ArchiveStatus,RetentionPolicy |
Format-Table -Auto

Archive açık kullanıcıları listele

Get-Mailbox -ResultSize Unlimited |
Where-Object { $_.ArchiveStatus -eq "Active" } |
Select-Object DisplayName,PrimarySmtpAddress,ArchiveStatus,RetentionPolicy |
Format-Table -Auto

MRM tag’leri listele

Get-RetentionPolicyTag |
Select-Object Name,Type,AgeLimitForRetention,RetentionAction,RetentionEnabled |
Format-Table -Auto

MRM policy’leri listele

Get-RetentionPolicy |
Select-Object Name,RetentionPolicyTagLinks |
Format-Table -Auto

Sonuç

Microsoft 365 IMAP migration işlemlerinde panel her zaman yeterli detay vermez. Özellikle büyük mailbox geçişlerinde kaç mail kaldığını, ne kadar veri aktarıldığını ve işlemin gerçekten ilerleyip ilerlemediğini görmek için Exchange Online PowerShell kullanılmalıdır.

Saklama etiketi ve arşivleme tarafında ise E3 lisans olmayan veya panelde izin hatası veren tenant’larda klasik Exchange MRM hâlâ çok işe yarayan bir çözümdür. Buradaki kritik nokta, doğrudan retention tag oluşturmaya çalışmadan önce Microsoft 365 Admin Center’daki EWS / Increase EWS Throttling Policy / Run Tests tanılamasını çalıştırmak ve ardından Exchange Online PowerShell ile MRM tag-policy yapısını oluşturmaktır.

Özetle doğru sıra şu şekildedir:

Migration durumunu PowerShell ile kontrol et
Syncing mailbox’ın gerçekten ilerleyip ilerlemediğini takip et
Microsoft 365 Support üzerinden EWS Run Tests çalıştır
Organization customization kontrolünü yap
Archive mailbox’ı aktif et
MRM retention tag oluştur
Retention policy oluştur
Policy’yi mailbox’a ata
Managed Folder Assistant ile işlemi tetikle

Bu yöntem özellikle Yandex Mail, hosting mail, eski IMAP sunucu veya farklı mail servislerinden Microsoft 365’e geçişlerde migration sonrası mailbox yönetimini çok daha kontrollü hale getirir.

Kategori:Genel

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir