Azure AD Connect: DeletingCloudOnlyObjectNotAllowed Hatası ve Veri Kayıpsız Çözümü

Bu notta, yerel Active Directory (On-Premises AD) ve Microsoft 365 / Entra ID arasında oluşan senkronizasyon çakışmasının nedenini ve kullanıcının e-postalarını, lisansını ve verilerini hiçbir şekilde riske atmadan Microsoft Graph API ile sorunun nasıl çözüleceğini adım adım inceleyeceğiz.

1. Problemin Tanımı ve Belirtileri

Senaryo

  • Yerel Domain Controller (On-Premises AD) üzerindeki bir kullanıcı hesabı silinir.
  • AD Connect senkronizasyonu çalışır ve nesne Microsoft 365 (Entra ID) tarafında da Silinen Kullanıcılar (Deleted Users / Recycle Bin) sekmesine düşer.
  • Daha sonra bu kullanıcı Entra ID portalı üzerinden geri yüklenir (Restore edilir) ve UPN / birincil e-posta adresi değiştirilerek sadece bulut üzerinde aktif tutulmak istenir.

Ortaya Çıkan Hata

Bu senaryonun ardından Azure AD Connect her senkronizasyon döngüsünde (Export adımında) hata vermeye başlar:

  • AD Sync Error: DeletingCloudOnlyObjectNotAllowed
  • Event ID: 6941 (ADSync)
  • Wazuh / SIEM Alarmı: Windows Application Log (Rule ID: 60602, Level: 9)

Plaintext

Error Details:
"ECMA2 MA export run caused an error. 
DN: CN={...} 
Error Name: DeletingCloudOnlyObjectNotAllowed 
Error Detail: Bu hata, Azure AD Connect silindiğini onaylayamadan önce silinen bir nesnenin Azure AD’de geri dönüşüm kutusundan kurtarılmış olduğunu gösterir..."

2. Hatanın Kök Nedeni (Root Cause)

  1. Nesne yerel AD’de silindiği için AD Connect, Entra ID’ye “Bu kullanıcı yerelde yok, buluttan da silinmeli” komutunu gönderir.
  2. Ancak nesne bulut tarafında manuel geri yüklendiği için Entra ID güvenlik ve veri bütünlüğü mekanizması gereği şu cevabı döner:“Bu nesne bulutta geri yüklenmiş/aktif bir nesnedir. Yerel AD silindiğini onaylamadan bu nesneye silme işlemi uygulanamaz.”
  3. AD Connect her senkronizasyon periyodunda (30 dakikada bir) bu silme komutunu tekrarladığı için sistem sürekli hata üretir ve SIEM/Wazuh loglarında gürültü oluşturur.
READ  Office 365 Outlook: "Hata 500 Bir şeyler ters gitti" hatası

3. Kesin ve Risk Sız Çözüm: OnPremisesImmutableId’nin Temizlenmesi

Kullanıcıyı silmeden veya posta kutusunu riske atmadan yapılacak işlem, bu nesnenin yerel Active Directory ile olan senkronizasyon bağını (OnPremisesImmutableId) tamamen koparmaktır.

Bağ koptuğunda Entra ID nesneyi bağımsız bir “Cloud-Only” (Sadece Bulut) nesnesi olarak kabul eder ve AD Connect servisi nesneyi takip etmeyi bırakır.

Adım 1: Nesnenin ObjectId Bilgisini Tespit Etme

Azure AD Connect Synchronization Service Manager konsolundan veya olay günlüklerinden hataya sebep olan nesnenin ObjectId değerini alın.

Örnek: 3c90bcda-511d-4cb5-0000-000000000000

Adım 2: Microsoft Graph PowerShell Modülünü Kurma ve Azure / Entra ID’ye Bağlanma

Microsoft, eski MSOnline ve AzureAD PowerShell modüllerini tamamen emekliye ayırdığı için işlemlerimizi güncel Microsoft Graph PowerShell SDK üzerinden yürütüyoruz.

  1. PowerShell’i Yönetici (Administrator) olarak açın ve modülü yükleyin:PowerShellInstall-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Force
  2. Entra ID / Tenant ortamınıza kullanıcı düzenleme yetkisiyle bağlanın:PowerShellConnect-MgGraph -Scopes "User.ReadWrite.All" (Bu komut sonrasında açılan tarayıcı penceresinden Global Admin yetkisine sahip 365 hesabınızla oturum açıp istenen izinleri onaylayın).

Adım 3: Microsoft Graph API ile Senkronizasyon Bağını Koparma

PowerShell üzerindeki varsayılan Update-MgUser cmdlet’i bazı durumlarda $null veya boş dize geçişlerinde BadRequest (400) hatası döndürebilir. Bu nedenle en kararlı ve doğrudan yöntem Microsoft Graph Request (PATCH) çağrısı yapmaktır.

Bağlantıyı sağladıktan sonra şu komut blokunu çalıştırın:

PowerShell

# Null değerini içerecek JSON gövdesini (Body) hazırlayın
$body = @{
    onPremisesImmutableId = $null
}

# PATCH metodu ile kullanıcının senkronizasyon bağını sıfırlayın
Invoke-MgGraphRequest -Method PATCH -Uri "https://graph.microsoft.com/v1.0/users/3c90bcda-511d-4cb5-0000-000000000000" -Body $body

(Komut çalıştıktan sonra alt satıra hatasız geçmesi işlemin başarılı olduğunu gösterir).

Adım 4: Senkronizasyonu Tetikleme ve Doğrulama

Bağlantıyı kopardıktan sonra On-Premises AD Connect sunucusunda senkronizasyon döngüsünü başlatın:

PowerShell

Start-ADSyncSyncCycle -PolicyType Delta

İşlem tamamlandıktan sonra:

  • Microsoft 365 / Entra ID Tarafı: Kullanıcının hesabı, lisansları, mevcut e-postaları ve posta kutusu hiçbir kesinti yaşanmadan korunmuş olur. Nesne türü artık “Cloud” olarak görünür.
  • On-Premises AD Connect Tarafı: DeletingCloudOnlyObjectNotAllowed hatası Synchronization Service Manager üzerinden temizlenir.
READ  Paylaşılan posta kutusundan mail gönderememe sorunu

Kaynak:

https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/tshoot-connect-sync-errors

https://learn.microsoft.com/en-us/graph/api/user-update?view=graph-rest-1.0&tabs=http

Yorum yapın

Paylaş