Powershell

Sccm Unknown Computers Troubleshooting [Powershell]

Sccm-Powershell-Automation

Merhaba bu yazıda sizlere sccm üzerinden dağıtmış olduğunuz software update deploymentları sonrası, compliance raporlarında unknown durumda gözüken cihazlarınız için troubleshooting yöntemlerinden bir kaçının powershell ile uzaktan birden çok cihaza nasıl uygulanabilir olduğunu göstereceğim.

Cihazların unknown durumda olmasının genel olarak en büyük sebeplerinden biri cihazın gpo’sunun sağlıklı çalışmamasıdır. Bunun için group policy dosyalarının temizlenmesi/tazelenmesi ve sccm de actionların tetiklenerek tekrar refresh olup yenide create edilmesi gerekmektedir.

Önce compliance durumu unknown olan clientların listesini bir txt dosyasına aktarıyoruz. Ve önce bu dosyaların var olup olmadığını kontrol ediyoruz. Ardından tarihi eski olanları (veya tamamını) siliyoruz.

#registry.pol dosyasının kontrolü

$Computerlist = get-content C:\servers\servers.txt
Foreach ($computer in $Computerlist) 
{
Get-ChildItem \\$computer\C$\Windows\System32\GroupPolicy\Machine\Registry.pol  -Force  | Select-Object Name,LastWriteTime,Directory
}


#registry.pol dosyasının silinmesi.

$Computerlist = get-content C:\servers\servers.txt
Foreach ($computer in $Computerlist) 
{
Remove-Item -Path \\$computer\C$\Windows\System32\GroupPolicy\Machine\Registry.pol -Force 
}

Silinme işlemi tamamlandıktan sonra ilgili unknown clientlara ait Machine Policy ve Software Updates Evaluation Cycle actionslarını tetikliyoruz. 5-10 dk sonra (network hızına göre değişebilir) clientlarınız yeni group policylerini çekecektir. Dilerseniz yukarıdaki komut ile kontrolünü sağlayabilirsiniz.

Eğer herşey yolunda gitmişse group policy dosyaları güncellendiyse ve clientların regedit’lerinde yer alan WUServer ve WUStatusServer alanlarında sccm sunucunuz yazıyorsa. Aşağıdaki komut ile cihazların ccmcache klasörlerini yine uzaktan kontrol edebilirsiniz. Update dosyalarını başarılı bir şekilde çekiyorsa güncel tarih ile gözükecektir. Ve compliance status unknowndan in-progress’e geçecektir.

#ccmcache download kontrolü


$Computerlist = get-content C:\servers\servers.txt
Foreach ($computer in $Computerlist) 
{
Get-ChildItem \\$computer\C$\Windows\ccmcache  -Force  | Select-Object Name,LastWriteTime,Directory
}

Bu yöntem ile software update almakta sorun yaşayan ve sorunun kaynağı group policy’nin temizlenmesiyle düzelebilecek olan clientlarınınıza müdahalede bulunabilirsiniz. Bu yöntem ile düzelmeyen clientlarda sorunu farklı bir yerde aramak için size ipucu verecektir.

Umarım faydalı olmuştur.

Bir sonraki yazıda görüşmek üzere 🙂