BlogIntune

Microsoft Intune Remediations ile Proaktif Endpoint Yönetimi

Intune Remediations Nedir?

Remediations (Mayıs 2023 Intune güncellemesiyle Proactive Remediations adından dönüştürüldü) Microsoft Intune’a yerleşik, yaygın cihaz sorunlarını otomatik olarak tespit edip düzelten iki script’ten oluşan bir çerçevedir.

Her script paketi iki bileşenden oluşur:

Detection Script, cihazda belirli bir sorunun var olup olmadığını sorgular ve sonucu bir exit code aracılığıyla Intune’a bildirir. Exit 0 cihazın sağlıklı olduğu anlamına gelir, hiçbir şey olmaz. Exit 1 bir sorun tespit edildiği anlamına gelir ve ikinci aşama devreye girer.

Remediation Script, yalnızca detection script exit 1 döndürdüğünde çalışır. Tespit edilen sorunu gidermeye çalışır ve kendi sonucunu raporlar: başarılı onarım için exit 0, başarısız için exit 1. Her iki script’in çıktısı cihaz bazında kaydedilir ve Intune portalında görüntülenebilir.

Bilmekte fayda var olan bir kullanım modu daha var: Remediation script eklemeden yalnızca detection script ile paket oluşturabilirsiniz. Bu, otomatik müdahaleye geçmeden önce fleet genelinde bir durumu izlemek ve raporlamak istediğinizde işe yarar.

ConfigMgr ortamından gelenler için tanıdık bir referans noktası: Remediations, SCCM’deki Configuration Items ve Baselines mantığının PowerShell tabanlı, bulut-native karşılığıdır.

Nasıl Çalışır?

Cihazda çalışan Intune Management Extension (IME) servisi, atanmış script paketlerini Intune’dan alır ve belirlenen schedule’a göre çalıştırır. Akış şu şekilde ilerler:

  1. IME, atanan script paketini cihaza indirir
  2. Detection script belirlenen zamanda çalışır
  3. Exit 1 dönerse remediation script otomatik olarak tetiklenir
  4. Her iki script’in çıktısı ve exit code’u Intune portalına raporlanır

Uzun vadede ciddi zaman kazandıran bir detay: script’lerde Write-Output ile yazdığınız her şey portaldaki Pre-remediation detection detail ve Post-remediation detection detail kolonlarında görünür. Her iki script’e açıklayıcı çıktı eklemek, ileride bir şeyler ters gittiğinde fleet ölçeğinde sorun tespitini çok daha hızlı hale getirir.

Ön Koşullar

İlk script paketini oluşturmadan önce birkaç şeyin hazır olması gerekir.

Lisans, en sık takılınan noktadır. Remediations için aşağıdakilerden biri gereklidir:

  • Windows Enterprise E3 veya E5 (Microsoft 365 F3, E3 veya E5 içinde)
  • Windows Education A3 veya A5 (Microsoft 365 A3 veya A5 içinde)
  • Windows Virtual Desktop Access (VDA) per user

Sık sorulan soruyu doğrudan yanıtlayalım: Microsoft 365 Business Premium, Intune Plan 1 standalone Remediations’ı kapsamıyor.

Cihaz gereksinimleri: Cihazın Microsoft Entra joined veya Hybrid Entra joined olması ve Intune tarafından yönetilmesi gerekiyor. Windows Enterprise, Professional veya Education sürümleri destekleniyor. Co-managed cihazlar da kapsam içinde.

Script paketi limiti: Bir tenant’ta en fazla 200 script paketi oluşturulabiliyor. Büyük ortamlarda bu sınırı aklın bir kenarında tutmak ve kullanılmayan paketleri zaman zaman gözden geçirmek iyi bir alışkanlıktır.

Tenant’ı Hazırlamak

Script paketi oluşturmaya başlamadan önce tenant seviyesinde iki ayarı aktif etmeniz gerekiyor. Bu adımlar tamamlanmadan Remediations ekranındaki + Create butonu pasif kalır.

Intune admin center → Tenant administration → Connectors and tokens → Windows data yolunu izleyin ve şu iki toggle’ı açın:

  • Enable features that require Windows diagnostic data in processor configuration — Remediations ve diğer Endpoint Analytics özelliklerinin çalışması için zorunlu
  • I confirm that my tenant owns one of these licenses — Lisans onayıdır; bu olmadan script paketi oluşturulamaz

 

Kaydedin, ardından Devices → Scripts and remediations → Remediations yoluna gidin.

Tenant ayarları henüz yapılmamışsa mavi bir uyarı banner’ı görürsünüz: “Use of remediations requires Windows license verification to be enabled.”

Her iki toggle kaydedildikten sonra banner kaybolur ve + Create aktif hale gelir.

Konuyu somut tutmak adına gerçek ortamlarda sıkça karşılaşılan üç senaryo üzerinden ilerleyeceğiz:

  • Windows Update Sağlık ve Drift Kontrolü ile bozuk güncelleme stack’ini cihazlar uyumluluktan çıkmadan tespit edip düzeltmek
  • Win32 Uygulama tespit ve Otomatik Düzeltme ile eksik veya bozuk uygulama dosyalarını yakalayıp otomatik yeniden yüklemek
    • Intune Management Extension (IME) Sağlık Kontrolü ile Intune Management Extension’ın kendi sağlığını koruyarak yönetim kanalının hiç sessizleşmemesini sağlamak

Windows Update Sağlık ve Drift Kontrolü

Kurumsal ortamlarda en sık karşılaşılan sorunlardan biri Windows Update’in sessiz sedasız bozulmasıdır. Servisler durur, güncelleme stack’i kilitlenir, cihazlar uyumluluktan çıkmaya başlar. Kullanıcılar bunu genellikle başka bir şey ters gidene kadar fark etmez. Bu senaryo Remediations için biçilmiş kaftan.

Bu script paketi ne yapar:

Detection script her çalıştığında üç şeyi kontrol eder: Windows Update servisi (wuauserv), Background Intelligent Transfer Service (BITS) ve Update Orchestrator Service (UsoSvc) doğru startup tipiyle çalışıyor mu; ve son başarılı Windows Update taramasından bu yana kaç gün geçmiş. Servislerden biri durmuş ya da yanlış yapılandırılmışsa, veya cihaz çok uzun süredir başarılı bir güncelleme taraması yapmamışsa script exit 1 döndürür ve remediation tetiklenir. Her şey yolundaysa exit 0 döner, hiçbir şey olmaz.

Remediation script üç servisi doğru startup tiplerine geri alır, gerekirse yeniden başlatır ve güncelleme tarama bayrağını sıfırlayarak taze bir kontrol başlatır.

PowerShell Gallery linkleri:

Script Paketi Oluşturma

Devices → Scripts and remediations → Remediations yolunu izleyin ve + Create butonuna tıklayın.

Basics sekmesinde pakete anlamlı bir isim verin. Windows Update Health & Drift Control ismini verdim

Settings sekmesinde detection ve remediation script dosyalarını yükleyin. Alttaki üç seçeneğe dikkat edin:

  • Run this script using the logged-on user credentials → No — bu script’ler servislerle ve güncelleme stack’iyle etkileşmesi gerektiğinden SYSTEM olarak çalışmalı
  • Enforce script signature check → No — kuruluşunuzda script imzalama politikası zorunlu değilse
  • Run script in 64-bit PowerShell → Yes — servis yönetimi script’lerinde WOW64 yönlendirme sorunlarından kaçınmak için her zaman 64-bit kullanın

Assignments sekmesinde hedef gruba atayın. Atanan grubun yanındaki Schedule linkine tıklayarak çalışma sıklığını ayarlayın. Mevcut seçenekler Once, Hourly ve Daily‘dir. Güncelleme sağlığı kontrolü için Daily doğru tercihtir. Ortamınıza uygun bir saat belirleyin; farklı zaman dilimlerindeki cihazlarda tutarlılık için Use UTC seçeneğini açabilirsiniz.

Test Zamanı

Mantığın uçtan uca çalıştığını doğrulamak için kontrollü bir şekilde detection’ı tetiklemem gerekiyordu. Windows Update arka planda birkaç servisle birlikte çalışır  bunlardan birkaçını manuel olarak durdurmak, script’in yakalamak için tasarlandığı drift türünü simüle etmenin pratik bir yolu.

Servisler durduğunda detection script bir sonraki çalışmada exit 1 döndürür ve remediation script tetiklenir. Remediation servisleri yeniden ayağa kaldırır.

C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\AgentExecutor.log dosyasındaki log her şeyin beklendiği gibi ilerlediğini onaylar. Vurgulanan satır detection çıktısını gösteriyor: Starting detection, Last successful update: 0 days ago, Device is HEALTHY remediation başarıyla tamamlandı ve cihaz post-remediation kontrolünden geçti.

Intune Portalda Sonuç

Portaldaki Device status ekranı tablonun tamamını özetliyor. MKTECH-2705 cihazı Detection status: With issues (sorun yakalandı) ve Remediation status: Issue fixed  otomatik olarak, destek talebi açılmadan, kimse cihaza dokunmadan.

Win32 Uygulama Tespiti ve Otomatik Düzeltme

Intune üzerinden yapılan Win32 uygulama dağıtımları genellikle sorunsuz çalışır ta ki bir sorun çıkana kadar. Uygulama ilk dağıtımda başarıyla kurulmuş olabilir, ama zamanla bir kullanıcı yanlışlıkla bir dosyayı silebilir, bir güncelleme yanlış gidebilir ya da kurulum sessizce bozulabilir. Intune açısından uygulama zaten dağıtılmıştır, herhangi bir aksiyon alınmaz. Kullanıcı açısından ise uygulama çalışmıyordur.

Remediations tam burada standart Win32 uygulama dağıtımının kapsamadığı bir boşluğu kapatıyor. Kullanıcının sorunu bildirmesini beklemek yerine, detection script uygulamanın disk üzerinde gerçekten sağlıklı bir durumda olup olmadığını kontrol eder; değilse remediation script otomatik olarak yeniden yükler.

PowerShell Gallery linkleri:

Script Paketi Oluşturma

Basics sekmesinde pakete açıklayıcı bir isim verin. Win32 App Detection & Auto Remediation iyi çalışır ya da benzer paketleri birden fazla uygulama için çalıştırmayı planlıyorsanız uygulama adını doğrudan dahil edebilirsiniz: 7-Zip Health & Auto Remediation gibi.

Settings sekmesinde detection ve remediation script’lerini yükleyin. Detection script, 7z.exe‘nin beklenen kurulum yolunda var olup olmadığını kontrol eder. Remediation script, dosya eksikse sessiz bir yeniden kurulum başlatır.

  • Run this script using the logged-on user credentials → No
  • Enforce script signature check → No
  • Run script in 64-bit PowerShell → Yes

Test Zamanı

Detection’ı tetiklemek için 7-Zip’in çalıştırılabilir dosyasını doğrudan sildim  bir uygulamanın dosyalarının tutarsız bir duruma düşmesini simüle etmenin pratik bir yolu.

Dosya kaybolduğunda detection script bir sonraki çalışmada exit 1 döndürür ve remediation devreye girer. AgentExecutor logu detection çıktısında göründüğü gibi  7-Zip healthy remediation çalıştı, uygulamayı yeniden yükledi ve post-remediation detection kontrolünden geçti.

Hızlı bir Test-Path dosyanın yerine geri döndüğünü doğrulayalım.

Bir tespit koşulu yazabildiğiniz herhangi bir Win32 uygulama için aynı yaklaşım geçerli ister dosya yolu, ister registry anahtarı, ister servis durumu, ister versiyon kontrolü olsun. Kritik iş araçları, güvenlik ajanları, kullanıcıların her gün bağımlı olduğu uygulamalar. Tespit edebildiğiniz her şeyi Remediations ile koruyabilirsiniz.

Intune Management Extension (IME) Sağlık Kontrolü

Bu senaryoda biraz ironik bir durum var. Intune Management Extension, Remediations’ı cihazlarda çalıştırmaktan sorumlu olan agent’ın ta kendisi IME olmadan hiçbir şey çalışmıyor. Script’ler çalışmıyor, politikalar uygulanmıyor, raporlama sessizleşiyor. Üstelik IME sorunları genellikle dramatik bir çöküş yerine sessiz bir durma şeklinde geldiğinden, fark edilmesi uzun sürebiliyor. Servis çalışıyor görünürken agent arka planda hiçbir işe yaramamış olabilir.

Bu script paketi IME’nin kendi sağlığını izliyor ve bir şeyler ters gittiğinde yeniden başlatıyor Remediations’ı çalıştıran şeyi düzeltmek için Remediations kullanıyor.

Detection script ne kontrol ediyor:

Sırayla üç şeye bakıyor. İlk olarak IntuneManagementExtension servisinin gerçekten Running durumunda olup olmadığı. İkinci olarak IME log dizininin beklenen yolda var olup olmadığı. Üçüncüsü ise logların son iki saat içinde yazılıp yazılmadığı. Bir servis Running gösterebilirken agent fiilen durmuş olabilir; başka bir semptom belirmeden önce stale loglar genellikle ilk işaret olur.

Bu kontrollerden herhangi biri başarısız olursa script exit 1 döndürür ve remediation devreye girer.

Remediation script ne yapıyor:

Önce temiz bir servis yeniden başlatması deniyor. Bu başarılı olursa çıkıyor. Herhangi bir nedenle yeniden başlatma başarısız olursa process seviyesinde bir kurtarma işlemine geçiyor IME process’ini zorla durduruyor, kısa bir süre bekliyor, ardından servisi yeniden başlatıyor. Script ayrıca C:\ProgramData\IntuneRemediations\IMEHealth.log dosyasına kendi logunu yazıyor; remediation’ın kendisinin incelenmesi gerektiğinde işleri kolaylaştırıyor.

PowerShell Gallery linkleri:

Script Paketi Oluşturma

Basics sekmesinde pakete isim veriyoruz Intune Management Extension (IME) Health Fix .

Settings sekmesinde Detect-IMEHealth.ps1 ve Remediate-IMEHealth.ps1 dosyalarını yükleyin

  • Run this script using the logged-on user credentials → No
  • Enforce script signature check → No
  • Run script in 64-bit PowerShell → Yes

Detection script, IME loglarına iki saatten uzun süredir yazılmamışsa devreye giriyor. Bunu hiçbir şeyi gerçekten bozmadan simüle etmek için log dosyasının LastWriteTime değerini PowerShell’de doğrudan beş saat geriye çekiyorum.

Stale loglarla birlikte detection script bir sonraki çalışmada exit 1 döndürüyor ve remediation devreye giriyor  IME servisini yeniden başlatıyor ve taze log aktivitesi tetikleniyor. AgentExecutor logu detection’ın temiz çalıştığını ve cihazın sağlıklı duruma döndüğünü onaylıyor.

Log dosyasının LastWriteTime değeri tekrar kontrol edildiğinde log saatlerinin güncellendiğini görebiliyoruz.

Bu Senaryonun Değeri

Çoğu Remediation kullanıcıların doğrudan etkileşime girdiği şeyleri düzeltiyor. Bu senaryo bir katman daha aşağıda çalışıyor yönetim kanalının kendisini sağlıklı tutuyor. IME’si durmuş bir cihaz Intune açısından görünmez hale gelir ve bunu izleyen bir mekanizma olmadan bu durum günlerce fark edilmeyebilir. Saatlik çalıştırmak, bu tür sessiz drift için açık pencereyi kısa tutar.

Remediations, kullanmaya başladıktan sonra sessiz sedasız vazgeçilmez hale gelen özelliklerden biri. Bu yazıdaki üç senaryo sadece bir başlangıç noktası asıl değer kendi ortamınızdaki tekrarlayan sorunları buraya taşımaya başladığınızda ortaya çıkaracaktır.

Bir yanıt yazın

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

Başa dön tuşu