Today, I’ve developed a solution for the CrowdStrike issue that has caused significant outages for numerous major companies using PowerShell WPF and SCCM. Microsoft recently released a recovery tool specifically designed to address this problem; however, it requires USB devices for recovery operations.
Bu yazıda geçtiğimiz günlerde hacklenenAnydesk uygulamasının SCCM ile cihazlardan kaldırılması ve eğer portable sürüm var ise bunun da tespit edilerek temizlenmesi üzerine çalışma yapacağız.
Selamlar, uzun zamandır bana da kılavuz olması adına hakkında yazmak istediğim site recovery konusunu lab ortamımda güncelleme sırasında sorun yaşadığımdan artık ele alabilirim. SCCM ortamımı 2309 versiyonuna geçiş sırasında elektrik kesintisi nedeniyle cihazım kapandı.
Selamlar, bu yazıda Microsoft tarafından önerilen WSUS best practicelerini uygulayacağız.
Kapasite Limiti
WSUS 100,000 ve hatta Configuration Manager üzerinden 150,000 makineyi destekleme kapasitesi olsa da Microsoft Scan Storm dediğimiz bir problemin meydana gelmemesi için bu rakamlara çıkılması yerine aynı SQL Server DB’nin paylaşıldığı 2-4 sunucunun daha konfigüre edilerek ortama dahil edilmesinin iyi olabileceğini belirtiyor. Shared DB kullanan WSUS sunucuları sayesinde kullanıcılar farklı bir WSUS sunucuya atladıklarında full scan yapmayacak ve 1GB’dan fazla olabilecek boyutlarda metadata dosyalarını sunucuya yeniden transfer etmeye çalışmayacaklar. Bu konu ile ilgili farklı bir zamanda bir yazı yazmaya çalışacağım.
Geri Dönüşümü İptal Etme ve Memory Limitasyonu Konfigürasyonu
WSUS güncelleme metadatalarını veri tabanından çeken bir cache mekanizması kullanır. Bu süreç çok maliyetli ve çok yoğun memory kullanabilir. Bu sebeple IIS’de WSUS’un bulunduğu pool’da geri dönüşüm(recycling) sürecine sokulabilir, bu duruma bir de yukarıda belirtilen scan storm eklenirse, WSUS’un sürekli olarak geri dönüşüm döngüsüne girmesi ve scan request’lerine HTTP 503 error’leri vermesi ile sonuçlanabilir.
Microsoft bu duruma karşı WSUSPool üzerindeki varsayılan Queue Length ‘in yükseltilmesini ve sanal(virtual) ve özel(private) memory limitlerinin kaldırılması adına 0 olarak düzenlenmesini önermektedir.
IIS Manager > Application Pools >WsusPool‘a sağ tıklıyoruz ve Advanced Settings.. ‘i seçiyoruz.
Yaklaşık 17,000 güncellemenin önbelleğe alındığı bir ortamda 24GB’dan fazla memory’e cache sabitlenene kadar ihtiyaç duyulabilir.
Setting name
Value
Queue Length
2000 (up from default of 1000)
Idle Time-out (minutes)
0 (down from the default of 20)
Ping Enabled
False (from default of True)
Private Memory Limit (KB)
0 (unlimited, up from the default of 1,843,200 KB)
Regular Time Interval (minutes)
0 (to prevent a recycle, and modified from the default of 1740)
Bandwidth’i Daha Verimli Kullanmak Üzere Sıkıştırmanın Açık Olup Olmadığını Kontrol Etmek
SCCM ile update paketlerimizi DP’lerimize gönderip oradan clientlarımıza dağıtıyoruz. Bu bandwitdh olarak devasa fayda sağlamakla birlikte, network’te saturasyonun ve over-subscription’ın da önüne geçiyor, ayrıca birkaç sunucu üzerinde darboğaz oluşmasını engelliyor. Fakat WSUS için aynı şeyi söyleyemeyiz. Evet WSUS makine bazlı trafiği update paketine nazaran çok daha ufak olmaktadır ancak DP mantığını kullanamadığımız için yukarıdaki problemlerin makine sayısına bağlı olarak olma ihtimali bulunuyor.
Bu durumda WSUS üzerinde oluşacak istekleri sıkıştırarak burayı biraz daha kontrol altında tutabiliriz. Bu sıkıştırma tabii ki WSUS sunucumuzun CPU kullanımını arttıracaktır, ancak bandwidth olarak tasarruf etmemizi ve yukarıda belirttiğim durumların yaşanmamasına faydası olabilir. Aynı durum tam tersi için de geçerli, eğer CPU’nun harcadığı güç kısıtlıysa ancak bir bandwidth sıkıntınız yoksa bu durumda da aşağıda ilettiğim ayar açıksa kapatabilirsiniz.
Sıkıştırma konfigürasyonu kontrol etmek için;
IIS’in config folderına gidiyoruz: C:\WINDOWS\System32\inetsrv\config httpCompression altında aşağıdaki konfigürasyon var ise,
SCCM ile birlikte WSUS ya da direkt WSUS kullanın farketmeksizin update’leri sync edeceğiniz product’larınızı arada bir gözden geçirmekte fayda olmaktadır. Artık kullanmadığınız, eski olduğunu tamamen temizlediğiniz ya da günceline geçiş yaparak eskisini kullanmayı sonlandırdığınız uygulamalarınızı kaldırarak metadata boyutunuzu düşürebilirsiniz.
SCCM Kullanıyorsanız; Administration > Site Configuration > Sites > Primary Site’a sağ klik > Configure Site Components > Software Update Point
Örneğin artık End of Life olmuş sizin de muhtemelen ortamınızda artık kullanmadığınız Windows Server 2012’yi artık product’larımız arasından kaldırabiliriz.
Sadece WSUS kullanıyorsanız bu ayar WSUS konsolunda Options > Products and Classifications altında yer almaktadır. (SCCM kullanıyorsanız tekrar buradan kaldırılmasına gerek bulunmuyor.)
Selamlar, Bu yazıda SCCM 2309 güncellemesi sırasında lab ortamımda çıkan “Potential SQL server performance issue caused by change tracking retention period.” warning’inin giderilmesini ele alacağım.
Selamlar, bir client’a policy gönderdiğimde client’ın policy’yi işlemediğini gözlemledim. Ardından client üzerindeki Policyagent.log’a göz attığımda burada cihazın provisioning mode’da olduğunu ve bu yüzden policy’nin ignore edildiği belirtiliyordu.
Selamlar, bu yazıda SCCM (MECM) ile capture media nasıl oluşturabiliriz ve ardından bu oluşturduğumuz capture media ile önceden bütün ayarlarını yaptığımız referans işletim sistemini nasıl capture edebiliriz bunu aktarmaya çalışacağım.
Öncelikle base, referans ya da golden imaj kavramından biraz bahsedelim. Bu kavramlar bir kurumun cihazlarına kuracağı önceden bazı uygulama veya ayarların kaldırıldığı ya da eklendiği özelleştirilmiş işletim sistemleridir. Windows çok fazla kullanıcıya tek bir kurulum medyası ile ulaştığı için özellikle orta ve büyük ölçekli işletmeler Windows’un varsayılan olarak gelen bazı uygulamalarını kaldırmak ve yerine kendi işletmelerinde kullanacakları uygulamaları ve konfigürasyonları eklemek isterler. Bunu yapmanın en zarif yollarından biri işletim sistemini önceden yapılandırmaktır. Buna imajını almak diyebiliriz.
Ön Gereksinimler
Capture edeceğimiz makinenin herhangi bir domainde olmaması ve Workgroup olması gerekmektedir.
Base imajını alacağımız makinede unique identifier kullanan herhangi bir ajan (SCCM, Carbon Black vs.) bulunamamalıdır. Bulunuyorsa da temiz bir şekilde (tüm config dosyaları dahil) kaldırılmalıdır.
İmajı alınacak makinede Administrator haklarına sahip olmak gerekmektedir.
İmajın HyperV gibi bir sanallaştırma ortamında alınması hem cihazda driver olması gerekmeyeceği için hem de snapshot (yeni adıyla checkpoint) teknolojisiyle imajı tekrar oluşturmadan istenen noktaya dönebilme esnekliği sağlayacaktır.
SCCM üzerinden Capture Media Oluşturmak
Capture media oluşturmak için SCCM ortamımızda Software Library altında Operating Systems > Task Sequences‘e sağ tıklayarak Create Task Sequence Media seçeneğini seçiyoruz.
Ardından açılan pencerede Capture Media seçeneği üzerinden ilerliyoruz.
Media type seçiminde ISO oluşturmak için CD/DVD set seçimini seçiyoruz. Media file olarak capture medyamızı aktaracağımız klasörü seçiyoruz ve dosya ismini .iso uzantısında veriyoruz.
Ek olarak Staging folder konumunu soruyor, bu konum capture media’nın oluşturulacağı alan olarak nitelendirebiliriz ve varsayılan konum bırakılmadan ikincil partition üzerinde bir klasör oluşturarak buranın girilmesini öneririm, bazı antivirüsler buranın default alanına (Appdata/Temp) dosya yazılmasını zararlı yazılım olarak algılayıp engelleyebilmekte.
Media label dosyamızın ismi olacak, varsayılan şekilde kalabilir. ,
Include autorun.inf ise medyamızın mount edildiğinde otomatik başlaması için seçebileceğimiz bir ayar.
Bir sonraki adımda Boot image’ımızı seçiyoruz, halihazırda kullandığımız boot image seçilebilir.
Distribution point olarak da capture media’nın boyutu çok yüksek olmayacağından çok farketmese de bağlantı zayıf ise, capture media’yı oluşturduğumuz sunucumuza en yakın konumdaki (ya da en hızlı bağlantıdaki) DP seçilebilir.
Ardından summary adımını da ilerletip işlemi başlatıyoruz.
Kurumda Kullanılmayacak Windows Store App’lerin Temizlenmesi
Windows 10 ile birlikte Microsoft işletim sistemlerinin içerisine çeşitli uygulamalar ve hatta oyunlar eklemeye başladı. Biz bu gerek güvenlik nedeniyle gerek ise şirket bilgisayarlarının farklı amaç doğrultusunda kullanılmaması amacıyla bu uygulamaların bazılarını kaldırmamız gerekebilir. Bunun için;
Powershell’i açıyoruz.
Import-Module Appx ile appx modülünü çağırıyoruz.
Import-Module Dism ile dism modulünü çağırıyoruz.
Get-AppxPackage -AllUsers | select Name,Packagefullname,packagefamilyname,publisherid komutu ile mevcutta bulunan Store uygulamalarını döküyoruz ve kaldıracaklarımızı seçiyoruz.
Kaldıracak uygulamaları Remove-AppxPackage -Package \<packagefullname> ile kaldırıyoruz.
Bu süreç de tamamlandığına göre referans makinemizi capture etmeye başlayabiliriz.
Başlamadan Önce Son Temizlikler
Referans makinemizi kurduk, güncellemeleri yaptık, ayarlarımızı kurumun ihtiyaçları ve güvenlik politikaları doğrultusunda yaptık. Şimdi sırada capture etmek var. Bu noktada birkaç ip ucu paylaşmak isterim.
Başka bir user profile var ise silelim.
Referans makineyi capture etmeden önce tüm Temp klasörlerini temizleyelim.
C:\Temp
C:\Windows\Temp
C:\Users\kullaniciadi\AppData\Local\Temp
Disk Cleanup Tool çalıştırarak tüm kalıntıları temizleyelim.
Tüm event’leri aşağıdaki komutla tek bir hamlede temizleyelim.
wevtutil el | Foreach-Object {wevtutil cl “$_”}
Kurulum yapılırken oluşturulan kullanıcı profilini temizleyelim.
Referans makineniz içerisinde başka bir kurulum dosyası ya da herhangi bir gereksiz dosya varsa temizleyelim.
Bu yukarıdaki adımlar bu referans makinenizi kurduğumuz makinelerde de olmaması için yapılması faydalı olacaktır.
Oluşturduğumuz Capture Media İle Hazırladığımız Makinenin Görüntüsünü Almak
Bu adıma geçmeden yine bir snapshot almakta fayda var, sonuç olarak şu an final haldeyiz ve bir hata alırsak hatanın kalıntılarını temizlemek yerine buraya dönebiliriz.
Ardından yukarıda oluşturduğumuz capture image’ı mount edelim.
Capture Media disk drive’ı üzerinden geldi, LaunchMedia’yı açalım.
Next ile ilerliyoruz.
Bir sonraki adımda bizden nereye capture edileceğini girmemizi istiyor. Bir network konumunu belirtmemiz gerekli, HyperV hostunda bir klasör açıp burayı share edebiliriz.
Son adımdaki bilgileri girerek süreci başlatıyoruz.
Capturing işlemi başladı.
Bir süre sonra Windows restart olacak ve WinPE üzerinden açılacak, bu noktada sysprep tamamlanmış artık capturing başlamış olacaktır.
Bir yandan capture edilecek klasöre baktığımızda imajımızın buraya yavaş yavaş oluştuğunu gözlemleyebiliriz.