Blog

Microsoft Endpoint Manager Proactive Remediations Nedir?

Proactive Remediations, Microsoft Endpoint Manager‘in özelliği olan Endpoint Analytics‘in bir parçası olarak gelmektedir.

Makale İçeriği;

Proactive Remediations Nedir?

Proactive Remediations, yeni Microsoft Endpoint Manager özelliği Endpoint Analytics‘in bir parçasıdır. Proactive Remediations, kullanıcının cihazındaki yaygın destek sorunlarını tespit etmenize ve düzeltmenize olanak tanır. Bu aynı zamanda komut dosyalarını tüm cihazlarınızda belirli bir saatte (saatlik veya günlük) çalışacak şekilde zamanlamanıza veya bir kez çalıştırmanıza olanak tanımaktadır. 

Algılama ve düzeltme seçenekleri ile birlikte komut dosyası paketleri dağıtabilimenize olanak sağlamaktadır.

Her paket için bir algılama komut dosyası ve düzeltme komut dosyası olması gerekmektedir. Proactive Remediations, Intune’daki powershell betik atamalarını kullanarak bugün zaten yapabildiğimiz gibi betikleri cihazda çalıştırmak için Intune Yönetimi uzantısını (IME) kullanmaktadır. Aradaki fark, şimdi düzeltmek istediğimiz belirli bir durum hakkında zamanlama ve raporlama yapmamızdır.

Komut dosyaları varsayılan olarak her 24 saatte bir yeniden çalıştırılır. Aşağıdaki yerleşik betik paketlerinin Intune’dan cihaz gruplarına atanması yeterlidir.

Kendi tasarlayabileceğiniz bir algılamaya dayalı olarak yönetilen bir cihaza karşı sürekli olarak bir komut dosyası çalıştırmak istediğinizde bu özelliği kullanmalısınız. Örnek: Ofiste bulunan belirli bilgisayarların BIOS güncellemerini uygulamak için kullanabiliyorsunuz, algılama ve düzeltme yapabildiği için bu işlemleri çok kolay halledebiliyorsunuz.

Aslında burda şu soru ortaya çıkıyor; PowerShell ile PowerShell paketlenmesi ile ortaya çıkan Win32 App arasındaki fark nedir?

PowerShell betiklerini yalnızca bir kez dağıtabiliyorsunuz ama Proactive Remediations ile sürekli algılama ve düzeltme çözümleri üretebiliyorsunuz. Bu betikleri saatlik, günlük olarak çalıştırabiliyorsunuz.

Proactive Remediations Ön Gereksinimler

  • Cihazların Endpoint Analytics‘e kayıtlı olması gerekmektedir.

Cihazları Intune veya Configuration Manager aracılığıyla kaydederken Proactive Remediations oluşturma gereksinimleri de aşağıdaki gibidir;

  • Cihazlar Azure AD’ye katılmış veya Hybrid Azure AD‘ye katılmış olmalıdır.
  • Intune tarafından yönetilmeleri gerekmektedir ve Windows 10 veya sonraki bir sürümünü çalıştırmaları gerekmektedir.

Proactive remediations Etkinleştirme Adımları

Öncelikle https://endpoint.microsoft.com/ adresinde oturum açıyoruz.

Report – Endpoint Analytics üzerinden öncelikle Endpoint Analytics’i etkinleştirmeniz gerekmektedir.

Daha sonra Sol menüde bulunan Proactive Remediations’a geliyoruz. Proactive Remediations için gerekli lisanslama hakkında genel bilgi veriyor ve lisans sözleşmesini kabul etmemizi istiyor.

Confirm License butonu ile etkinleştirme işlemini gerçekleştirebiliyoruz.

Proactive Remediations Detect Script Örneği

Proactive Remediations ile algılama ve düzeltme script dağıtıma örnek yapabiliriz. Öncelikle Detect Script işlemini gerçeleştireceğiz. Başlangıç için Microsoft 2 tane yerleşik sciprt hazırlamış ve etkinleştirdikten sonra o scriptler kapalı bir durumdayken portala geliyor.

Bu scriptlerden bir tanesi ortamınızda bulunan Cihazlarda Office 16 ve ClicktoRun servislerini kontrol etmektedir.

#=============================================================================================================================
#
# Script Name:     DetectClickToRunServicecState.ps1
# Description:     Purpose of this script is to detect if Office 16 installed and further if "Click to Run Service" is running
# Notes:           No variable substitution should be necessary
#
#=============================================================================================================================

# Define Variables
$curSvcStat,$svcCTRSvc,$errMsg = "","",""

# Main script
   
   
If (-not (Test-Path -Path 'hklm:\Software\Microsoft\Office\16.0')){
    Write-Host "Office 16.0 (or greater) not present on this machine"
	exit 0   
} 

Try{        
    $svcCTRSvc = Get-Service "ClickToRunSvc"
    $curSvcStat = $svcCTRSvc.Status
}

Catch{    
    $errMsg = $_.Exception.Message
    Write-Error $errMsg
    exit 1
}

If ($curSvcStat -eq "Running"){
    Write-Output $curSvcStat
    exit 0                        
}
Else{
    If($curSvcStat -eq "Stopped"){
        Write-Output $curSvcStat
        exit 1     
    }
    Else{
        Write-Error "Error: " + $errMsg
        exit 1
    }
}
# SIG # Begin signature blockAaQBjAHkA
# SIG # End signature block
#=============================================================================================================================
#
# Script Name:     RemediateClickToRunServiceState.ps1
# Description:     Purpose of this script is to start the "Click to Run Service" and change its startup type to Automatic
#       Notes:     No variable substitution needed             
#
#=============================================================================================================================

# Define Variables
$svcCur = "ClickToRunSvc"
$curSvcStat,$svcCTRSvc,$errMsg = "","",""
$ctr = 0

# First, let's make sure nothing has changed since detection and service exists and is stopped
Try{        
    $svcCTRSvc = Get-Service $svcCur
    $curSvcStat = $svcCTRSvc.Status
    }

Catch{    
    $errMsg = $_.Exception.Message
    Write-Error $errMsg
    Exit 1
    }
        
# If the service got started between detection and now (nested if) then return
# If the service got uninstalled or corrupted between detection and now (else) then return the "Error: " + the error
If ($curSvcStat -ne "Stopped"){
    If ($curSvcStat -eq "Running"){
        Write-Output "Running"
        Exit 0
    }
    Else{
        Write-Error $errMsg
        Exit 1
    }
}

# Okay, the service should be there and be stopped, we'll change the startup type and get it running
Try{        
    Set-Service $svcCur -StartupType Automatic
    Start-Service $svcCur
    $svcCTRSvc = Get-Service $svcCur
    $curSvcStat = $svcCTRSvc.Status
        While ($curSvcStat -eq "Stopped"){
            Start-Sleep -Seconds 5
            ctr++
            if(ctr -eq 12){
                Write-Output "Service could not be started after 60 seconds"
                Exit 1
            }
        }
    }

Catch{    
    $errMsg = $_.Exception.Message
    Write-Error $errMsg
    Exit 1
    }
# SIG # Begin signature block
# SIG # End signature block

Bu scriptleri açık hale getirmek için Cihaz,kullanıcı veya grup ataması yapmamız gerekmektedir.

Betiğin içinde Assignments bölümüne geliyoruz ve ilgili atamayı gerçekleştiriyoruz.

Atama işlemini yaptıktan sonra Schedule ayarı yapabiliriz. Betiğin hangi saatlerde veya günde kaç kere çalışacağını belirtebiliriz.

Atama işlemi gerçekleştikten sonra betik açık hale gelecektir.

Betik çalıştıktan sonra Overview içerisinden ortamınızın durumunu görebiliyorsunuz veya detaylı rapor alabilirsiniz.

İlgili Makaleler

Bir Yorum

Bir yanıt yazın

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

Başa dön tuşu