Windows Update İstemcisi Sorun Giderme Kılavuzu
Windows güncellemeleri, hem Windows istemci hem de sunucu işletim sistemlerinin kritik bir bileşenidir. Windows'u güvende tutuyorlar ve otomatik olmaları gerekiyor. Ancak Windows Update önbelleğini temizlemeniz veya "Windows Update İstemcisi hatayla algılayamadı" sorunuyla uğraşmanız gerektiğini fark ettiğinizde, bu otomatik yapı kısa sürede değişir.
Bu makalede, Windows Güncelleştirmeleri ile ilgili sorunları istemci düzeyinde gidermeyi öğreneceksiniz. Windows Güncellemelerinin nasıl çalıştığını (yüksek düzeyde), günlükleri kullanarak temel sorun giderme işlemlerini nasıl gerçekleştireceğinizi ve yaygın Windows Güncelleme sorunlarını nasıl düzelteceğinizi öğreneceksiniz.
Önkoşullar
Bu eğitimin kapsadığı tüm adımların sizin için geçerli olmasını sağlamak için lütfen aşağıdakilere sahip olduğunuzdan emin olun:
- Windows 7+ veya Windows Server 2012+ makinesi - Bu eğitimde kullanılan demo ortamı Windows 10 Build 1909'u çalıştırıyordu ancak Windows 7 (ve muhtemelen önceki sürümleri) de çalışacak.
- Windows'ta yönetici kullanıcı olarak oturum açıldı. Bazı komutları yönetici olarak çalıştırmanız gerekecek.
Windows Güncelleme Aracısı (WUA)
Windows Update ile ilgili sorunlar söz konusu olduğunda birincil suçlu, Windows Update aracısıdır. Aracı, güncellemelerin algılanmasını, indirilmesini ve kurulmasını koordine etmekten sorumludur. Aracı, Windows Update hizmetini (wuauserv) koordine eden şeydir ve C:\Windows\System32 konumunda bulunan wuaueng.dll adlı bir DLL kitaplığıdır. .
Bazen Windows 8.1/Windows Server 2012 ve önceki işletim sistemlerinde aracının daha sonraki bir sürüme güncellenmesi gerekliydi. Aracıyı güncellemek çok daha az yaygın ve gerekli olmasına rağmen, daha eski bir işletim sistemi çalıştırıyorsanız, en son aracı sürümünü çalıştırdığından emin olmalısınız.
Bilgisayarınızda yüklü olan aracı sürümünü kontrol etmek için:
- Windows Dosya Gezgini'ni açın.
- C:\Windows\System32 klasörüne gidin.
- wuaueng.dll dosyasını bulun, sağ tıklayın ve Özellikler'e gidin.
- Özellikler pencerelerinde, aşağıda gösterildiği gibi Ayrıntılar sekmesini tıklayın. WUA sürümü Dosya sürümü olacaktır.
Genellikle Windows 10 ve sonraki sürümlerde WUA her zaman en son sürümde olacaktır. Ancak emin olmak için Microsoft belgelerini kontrol ettiğinizden emin olun.
Windows Güncelleme Sorunları Nasıl Düzeltilir
Size Windows Güncellemeleri hakkında daha fazla bilgi vermek yerine, önemli noktalara geçelim. Windows güncelleme önbelleğini nasıl temizleyebileceğinizi ve aldığınız sinir bozucu "Windows Update İstemcisi hatayla algılayamadı" hata mesajlarının çoğunu nasıl düzeltebileceğinizi ele alalım.
Sorunu Yeniden Oluşturun ve Windows Güncelleme Günlüğünü İnceleyin
Bilgisayardaki herhangi bir sorunu gidermek için sorunu yeniden oluşturabilmeniz gerekir. Yalnızca rastgele ortaya çıkan bir sorunun peşine düşmek şimdiye kadarki en sinir bozucu görevlerden biri olabilir.
Bilgisayarda herhangi bir şeyi değiştirmeden önce tam bir güncelleme işlemini başlatmalısınız. Bu güncelleme işlemi mevcut güncellemeleri algılayacak ve otomatik indirme ve kurulum ayarınızın olup olmadığına bağlı olarak güncellemeleri de indirip yükleyecektir.
Windows 10'da güncelleme işlemini başlatmak için:
- Başlat Menüsüne tıklayın ve powershell yazın.
- Windows PowerShell'e sağ tıklayın ve Yönetici Olarak Çalıştır'a tıklayın.
- PowerShell konsolunuzda yeni bir AutoUpdate COM nesnesi oluşturun ve
DetectNow()yöntemini çağırın. PowerShell, Windows Update aracısını başlatan yöntemi çağırmak için AutoUpdate COM nesnesine programlı erişim sağlar.
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()4. AutoUpdate COM nesnesinin, ileride kullanışlı olabilecek başka yöntemlere de sahip olduğunu görebilirsiniz.
Windows 8.1/Server 2012 veya daha eski bir sürümünü çalıştırıyorsanız, Windows Update istemcisini (C:\Windows\System32\wuauclt.exe)
/detectnowanahtarıyla da kullanabilirsiniz. Ancak Windows 10'dan itibaren bu anahtarın yerini PowerShell almıştır.
Yukarıdaki PowerShell komutunu çalıştırdığınızda hiçbir çıktı almamalısınız. Bir şey yaptığını nereden biliyorsun? Windows Güncelleme günlüğünü kontrol edin.
5. Hala PowerShell'deyken Get-WindowsUpdateLog komutunu çalıştırın. Bu komut tüm Windows Update olaylarını toplar ve geçerli dizinde bir WindowsUpdate.log metin dosyası oluşturur.
Windows 10, tanılama günlükleri oluşturmak için Windows için olay izlemeyi (ETW) kullanır. Artık C:\Windows\System32\WindowsUpdate.log günlük dosyasını doğrudan okuyamazsınız.
6. WindowsUpdate.log dosyasını inceleyin, aşağıdakine benzer birkaç satır görmelisiniz. Bu satırlar WUA'nın ne zaman başladığını gösterir. Buradan aşağı kaydırın ve herhangi bir sorun görüp görmediğinize dikkat edin.
Kritik Hizmetlerin Başlatıldığını Doğrulayın
Pencere Güncellemelerinin düzgün çalışması dört Windows hizmetine bağlıdır:
- Arka Plan Akıllı Aktarım Hizmeti (BITS)
- Windows Güncelleme hizmeti
- Kriptografik Hizmetler
- Windows Yükleyici
Yukarıdaki hizmetlerden herhangi biri durdurulursa (Windows Installer hariç), güncellemeler çalışmaz.
Önemli hizmetleri denetlemek için Windows Hizmet Yöneticisi seçeneğini veya PowerShell'i kullanın. Muhtemelen zaten PowerShell'iniz açık olduğundan, hadi o rotaya gidelim.
Her hizmetin durumunu kontrol etmek için aşağıda gösterildiği gibi Get-Service PowerShell komutunu kullanın.
Get-Service -Name wuauserv,bits,cryptsvc
Aşağıda her iki hizmetin de Çalışıyor Durumu olduğuna dikkat edin. Bunu görmüyorsanız, bunları başlatmanız gerekir.
Hizmetleri başlatmak için klavyenizdeki Yukarı oka basarak son komutu getirin ve ardından aşağıdaki gibi Start-Service komutunu sonuna ekleyin.
Get-Service -Name wuauserv,bits,cryptsvc | Start-ServiceWindows Güncelleme Önbelleğini Temizleme
Hizmetler çalışıyorsa ve Otomatik Güncelleştirmelerle ilgili hâlâ sorun yaşıyorsanız, Windows Update önbelleğini temizlemenin zamanı gelmiştir. Windows güncellemeleri indirip yüklediğinde, meta verileri indirir ve bazen her güncelleme için ikili dosyaları önbelleğe alır.
"Önbellek" olarak tanımladığınız şeye bağlı olarak, bu yaklaşıma uygulayabileceğiniz farklı düzeyde müdahaleler vardır. En az müdahaleci olandan başlamalı ve tekrar test etmelisiniz. Hâlâ sorun görüyorsanız bir sonraki sorun giderme adımına geçin.
Qmgr DAT Dosyalarını Kaldırma
Windows Update önbelleğini temizlemenin en az müdahaleci yollarından biri, tüm qmgr dosyalarını %ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader klasöründen kaldırmaktır. Ancak önce yukarıda belirtilen tüm geçerli hizmetleri durdurmalısınız.
Get-Service -Name wuauserv,bits,cryptsvc | Stop-ServiceTüm hizmetleri durdurduktan sonra aşağıdakileri çalıştırın:
Remove-Item -Path "$env:ALLUSERSPROFILE\Application Data\Microsoft\Network\Downloader\qmgr*.dat"Qmgr dosyalarını kaldırmaya çalışırken "Başka bir işlem tarafından kullanıldığı için işlem dosyaya erişemiyor" hatasıyla karşılaşabilirsiniz. Eğer öyleyse, bilgisayarınızı yeniden başlatıp tekrar deneyin. Hata devam ederse Windows'u güvenli modda yeniden başlatın ve tekrar deneyin.
PowerShell tüm önbellek güncellemelerini kaldırmalıdır. İşlem tamamlandıktan sonra hizmetleri yeniden başlatın ve parmaklarınızı çaprazlayın!
Get-Service -Name wuauserv,bits,cryptsvc | Start-ServiceNükleere Geçiş: Windows Update Önbelleğini Sıfırlama
Yukarıdaki adım yardımcı olmadıysa nükleere geçme zamanı gelmiştir. Tüm Windows Update önbellekleme sistemini tamamen varsayılan ayarlara sıfırlamanın zamanı geldi.
“Pencere Güncelleme önbelleği” gerçekte tek bir bileşen değildir; bileşenlerin bir kombinasyonudur. Yukarıdaki bölümlerde yalnızca hizmetleri ve dosya sistemini değiştiriyordunuz. Windows Update ayrıca kayıt defterinde ayarlara sahiptir ve birçok farklı DLL dosyasını kaydeder.
Şimdi Windows Update önbelleğini sıfırlamak için kullanabileceğiniz, gerekli kayıt defteri değişikliklerini yapacak, önbelleğe alınmış güncellemeleri kaldıracak ve ayrıca Windows Server Update Services (WSUS) ile ilgili bazı genel sorunları çözecek bir PowerShell betiğini inceleyelim.
Aşağıdaki betiği çalıştırmak için:
- Başlat menünüze tıklayın ve ise yazın.
- PowerShell ISE'ye sağ tıklayın ve Yönetici Olarak Çalıştır'a tıklayın.
- Görünüm'ü ve ardından Komut Dosyası Bölmesini Göster'i tıklayın. Bu eylem, komut dosyası yazabileceğiniz bir yer açmalıdır.
- Aşağıdaki betiği betik bölmesine kopyalayın.
Write-Host 'Stopping all necessary services…'
Get-Service -Name wuauserv,bits,cryptsvc,msiserver | Stop-Service
Write-Host 'Removing all qmgr.dat files…'
Remove-Item -Path "$env:ALLUSERSPROFILE\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
Write-Host 'Backing up Windows Update cache folders…'
Rename-Item -Path "$env:SYSTEMROOT\SoftwareDistribution\DataStore" -NewName 'DataStore.bak'
Rename-Item -Path "$env:SYSTEMROOT\SoftwareDistribution\Download" -NewName 'Download.bak'
Rename-Item -Path "$env:SYSTEMROOT\System32\catroot2" -NewName 'catroot2.bak'
Write-Host 'Resetting BITS and Windows Update services security descriptors…'
$null = Start-Process -FilePath 'sc.exe' -ArgumentList 'sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)'
$null = Start-Process -FilePath 'sc.exe' -ArgumentList 'sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)'
Write-Host 'Re-registering all requisite DLLs…'
$dlls = @(
'atl.dll'
'urlmon.dll'
'mshtml.dll'
'shdocvw.dll'
'browseui.dll'
'jscript.dll'
'vbscript.dll'
'scrrun.dll'
'msxml.dll'
'msxml3.dll'
'msxml6.dll'
'actxprxy.dll'
'softpub.dll'
'wintrust.dll'
'dssenh.dll'
'rsaenh.dll'
'gpkcsp.dll'
'sccbase.dll'
'slbcsp.dll'
'cryptdlg.dll'
'oleaut32.dll'
'ole32.dll'
'shell32.dll'
'initpki.dll'
'wuapi.dll'
'wuaueng.dll'
'wuaueng1.dll'
'wucltui.dll'
'wups.dll'
'wups2.dll'
'wuweb.dll'
'qmgr.dll'
'qmgrprxy.dll'
'wucltux.dll'
'muweb.dll'
'wuwebv.dll'
)
foreach ($dll in $dlls) {
regsvr32.exe "$env:SYSTEMROOT\System32\$dll" /s
}
Write-Host 'Removing WSUS registry values…'
@('AccountDomainSid','PingID','SusClientId','SusClientIDValidation') | ForEach-Object {
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" -Name $_ -ErrorAction Ignore
}
## Resets computer group membership
Write-Host 'Resetting WSUS client cookie..,'
$null = wuauclt.exe /resetauthorization
Write-Host 'Starting all necessary services…'
Get-Service -Name wuauserv,bits,cryptsvc | Start-Service
Write-Host 'Initiating update cycle…'
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
Write-Host 'Windows Update reset complete.'5. Dosya —> Kaydet'i tıklayın ve komut dosyasını bilgisayarınızda bir yere kaydedin. Bu eğitimde bunun C:\FixWindowsUpdates.ps1 konumunda olduğu varsayılacaktır.
6. Komut dosyasını çalıştırmak için PowerShell ISE'deki yeşil üçgene tıklayın.
GUI'yi daha çok seviyorsanız, benzer adımları uygulayan bir araç da bulabilirsiniz. Ancak yukarıdan PowerShell betiğinde verilen adımların tam olarak aynısını kapsadığını doğrulayamıyorum.
Çözüm
Bir Windows makinesinde arka planda otomatik olarak indirilip kurulabilmesi için gerekli güncellemelerin alınması birçok görevin düzenlenmesinden oluşur. Düzinelerce farklı hata mesajıyla karşılaşabilmenize rağmen, bu kılavuzda öğrendiğiniz ipuçları ve komut dosyaları, bunların hemen hemen hepsini düzeltmenize yardımcı olacaktır.





