PowerShell SCCM Maintenance Windows Search Script
Merhabalar bu yazımız da System Center Configuration Manager üzerinde ki koleksiyonlar da oluşturulmuş olan Maintenance Windows konfigürasyonundan ve büyük yapılarda normalin üstünde Device collection olduğunu düşünürsek tek tek aramak bir hayli zor olacağından dolayı, nasıl bir yöntem izleyeceğimizden bahsedeceğim. Şimdi SCCM uygulamasında Maintenance Windows nedir biraz ondan bahsedelim ve sonra scriptimize ve sonucuna bakalım.
Yukarıdaki resimde gördüğünüz gibi arkadaşlar birden fazla hatta düzinelerce collection var hepsi farklı işlemler için oluşturulmuş bazıları rapor için bazıları uygulama deploy etmek için. Evet uygulama deploy etmek demişken veya Restart edilecek sunucular collection objesini yukarıda görüyorsunuz. Bu sunucu exchange sunucusu olabilir mi ? Yanlışlıkla exchange sunucuya restart etmesi için deploy uygulamış olabilir miyim ? Tahmin ettiğiniz üzere şirkette ufak çaplı bir kaos ortamı oluşacaktır. Peki burada ne devreye giriyor ? Evet Maintenance Windows
Arkadaşlar koleksiyonunuza Maintenance Windows özelliği vererek deploy edilen işlemlerin belirli bir saat için de yapılmasını sağlayabilirsiniz. Nereden bu konfigürasyonu yapıyoruz hemen bakalım.
Yukaridaki resimde örnek olarak görüyorsunuz. Koleksiyona sağ tıklayarak properties kısmını seçiyorum, açılan ekranda Maintenance Windows kısmına tıklıyorum arkadaşlar şimdi burada aralık belirleme işlemimizi yapacağız.
Açılan ekranda bir isim veriyoruz ben Deploy Time demeyi tercih ettim. Bugünden itibaren aktif olmasını istediğim için efecctive date bugün seçiyorum. Peki hangi saatler arasında benim deploy ettiğim işlemleri alsın sunucum ? Gece 1-4 arası bir saat tanımlıyorum. Haftalık,aylık ve günlük seçeneklerim var ben haftada 1 gün çalışmasını istiyorum ve 1 kere denesin yapamaz ise denemesin istiyorum.
Maintenance Windows ekledik arkadaşlar şimdilik sunucumuzu olası bir deployment tehlikesinden korumuş olduk. Ve bir gün geldi sunucululara acil olarak birşey deploy etmeniz gerekecek ve siz bu koleksiyonu referans göstererek başka koleksiyonlar türettiniz. Deploy ediyorsunuz ama sunucular işlemi almıyor. Ve siz bir koleksiyona maintenance verdiğinizi unuttunuz bu gibi durumlarda insana bir güç gerek. Başlıktan da anlaşıldığı üzere bu güç, PowerShell. Şimdi düzinelerce koleksiyon arasından Maintenance aktif olan koleksiyonları nasıl listeleyeceğimize bakalım.
$AllDeviceCollections=Get-CMDeviceCollection | select name
$Main=@()
foreach($Single in $AllDeviceCollections)
{
Write-Host “$($Single.Name) koleksiyon kontrol ediliyor” -ForegroundColor Cyan -BackgroundColor Blackif(Get-CMMaintenanceWindow -CollectionName $Single.Name)
{
Write-Host “$($Single.Name)” -ForegroundColor Green -BackgroundColor Black
$Main+=$Single.name}
}
$Main | % {Write-Host “$_ Koleksiyonunda Maintenance ayarı bulunmaktadır “}
Kod blogu yukarıdaki gibidir output sonucuna bakalım hemen. Bu arada SCCM üzerinden PowerShell ISE çalıştırıp ilk gelen sayfadaki SCCM connection scriptini çalıştırdıktan sonra bu kod bloğunu çalıştırmanız gerekiyor.
Evet arkadaşlar yazdığımız kod ile Maintenance ayarı bulunan koleksiyonlarımızı bulmuş olduk Bir sonraki makalemizde görüşmek üzere.Hoşçakalın!
Ercan ESE
Consultant
Ercan hocam selamlar, çok değerli bir script olmuş. Elinize sağlık.