Windows Update-felkoder som 0x80070002, 0x800F0922 och 0xC1900101 löses oftast genom att återställa Windows Update-komponenterna, köra DISM- och SFC-reparationer och rensa katalogerna SoftwareDistribution och catroot2. För IT-helpdesk i Sverige är Windows Update fortfarande en av de vanligaste anledningarna till incidenter under 2026, särskilt efter Microsofts kvalitetsuppdateringar för Windows 11 24H2 och de nya kraven på TLS 1.2 mot WSUS. I den här guiden går jag igenom de felkoder vi ser oftast på supporten, ger dig kopierbara PowerShell-skript och visar hur du systematiskt isolerar problemet på en klientendpunkt eller en hel WSUS-distribution.
De flesta Windows Update-fel orsakas av korrupta filer i SoftwareDistribution, BITS-köfel eller saknade komponentmanifest. En återställning fixar 70–80 % av fallen.
Felkoden 0x800F0922 i Windows 11 24H2 beror oftast på en full systemreserverad partition (mindre än 250 MB ledigt) eller blockerad anslutning till Microsoft Update-servrar via TLS 1.2.
0xC1900101-varianter är drivrutinskonflikter. Kontrollera Setupact.log och Setuperr.log i $WINDOWS.~BT\Sources\Panther.
För hanterade enheter med WSUS måste klienter använda TLS 1.2 från och med februari 2026, annars returnerar Windows Update Agent fel 0x8024401C.
Windows Update for Business (WUfB) ersätter snabbt WSUS för molnhanterade enheter. Microsoft har bekräftat att WSUS-rollen är deprecierad sedan september 2024.
PowerShell-modulen PSWindowsUpdate ger dig fjärrkontroll över uppdateringar utan att behöva RDP:a in till varje klient.
Vanliga Windows Update-felkoder och vad de betyder
Ärligt talat, efter en hel del år på helpdesk ser jag samma handfull felkoder gång på gång, och de leder ofta tillbaka till tre grundorsaker: korrupta nedladdningar, saknade systemkomponenter och nätverks- eller policykonflikter. Innan du gör något annat, identifiera felkoden i Inställningar → Windows Update → Uppdateringshistorik, eller från eventloggen under Microsoft-Windows-WindowsUpdateClient/Operational.
Felkod
Grundorsak
Snabb åtgärd
0x80070002 / 0x80070003
Saknad eller flyttad fil i SoftwareDistribution
Återställ Windows Update-komponenter
0x800F0922
Systemreserverad partition full, eller TLS-anslutning blockerad
Utöka EFI-partition, kontrollera brandvägg
0x80073712
Korrupt CBS-manifest i komponentlagret
DISM /RestoreHealth
0xC1900101-0x20017
Drivrutinsfel under boot-fasen
Avinstallera tredjepartsdrivare för disk/AV
0x80240034
Misslyckad nedladdning, ofta BITS-relaterat
Återställ BITS-tjänsten
0x8024401C
Timeout mot WSUS eller blockerad HTTP/HTTPS
Verifiera TLS 1.2 och WSUS-URL
0x80246007
Ofullständig nedladdning av paket
Rensa SoftwareDistribution, starta om wuauserv
Notera att Microsoft inte längre publicerar en officiell lista över alla Windows Update-felkoder. Den senaste samlade referensen i Microsoft Learn-dokumentationen för Windows Update-fel uppdaterades senast i januari 2026 och täcker bara de vanligaste 0x8024-, 0x8007- och 0xC190-prefixen. För mindre vanliga fel behöver du dekoda HRESULT-värdet, vilket jag visar i loggfilssektionen längre ned.
Hur återställer jag Windows Update-komponenter?
Återställning av Windows Update-komponenter är den enskilt mest effektiva felsökningsåtgärden — i mitt team kallar vi det "den nukleära knappen" eftersom den löser majoriteten av 0x8007- och 0x8024-felen. Skriptet nedan stoppar relevanta tjänster, döper om de korrupta cache-katalogerna, avregistrerar och registrerar om DLL-filer som Windows Update Agent är beroende av, och startar sedan om allt.
# Reset-WindowsUpdate.ps1
# Återställer Windows Update-komponenterna på en lokal Windows 10/11-klient
# Kör i en förhöjd PowerShell-session
$ErrorActionPreference = 'Continue'
$services = @('wuauserv', 'cryptsvc', 'bits', 'msiserver')
Write-Host "Stoppar Windows Update-relaterade tjänster..." -ForegroundColor Cyan
foreach ($svc in $services) {
Stop-Service -Name $svc -Force -ErrorAction SilentlyContinue
}
Write-Host "Döper om cache-kataloger..." -ForegroundColor Cyan
$paths = @(
"$env:SystemRoot\SoftwareDistribution",
"$env:SystemRoot\System32\catroot2"
)
foreach ($p in $paths) {
if (Test-Path $p) {
$backup = "$p.bak_$(Get-Date -Format yyyyMMddHHmm)"
Rename-Item -Path $p -NewName $backup -ErrorAction SilentlyContinue
}
}
Write-Host "Registrerar om Windows Update DLL:er..." -ForegroundColor Cyan
$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 /s $dll
}
Write-Host "Återställer Winsock och proxy..." -ForegroundColor Cyan
& netsh winsock reset | Out-Null
& netsh winhttp reset proxy | Out-Null
Write-Host "Startar tjänster igen..." -ForegroundColor Cyan
foreach ($svc in $services) {
Start-Service -Name $svc -ErrorAction SilentlyContinue
}
Write-Host "Klart. Starta om datorn och försök Windows Update igen." -ForegroundColor Green
Efter omstart, kör UsoClient StartScan i en förhöjd PowerShell-prompt för att tvinga Windows Update Agent att initiera en ny synkronisering omedelbart, i stället för att vänta på nästa schemalagda intervall.
Reparera komponentlagret med DISM och SFC
När återställning av komponenter inte räcker till (typiskt vid 0x80073712 eller "CBS_E_SOURCE_MISSING"-fel) är problemet i WinSxS-komponentlagret. Här behöver du DISM (Deployment Image Servicing and Management) för att hämta nya kopior av de skadade systemfilerna från Windows Update själv, eller från ett känt-gott source-image.
# Kör i förhöjd PowerShell- eller cmd-prompt
# 1. Skanna komponentlagret för korruption (snabb kontroll, ändrar inget)
DISM /Online /Cleanup-Image /ScanHealth
# 2. Om korruption detekteras, kontrollera om den är reparerbar
DISM /Online /Cleanup-Image /CheckHealth
# 3. Reparera mot Windows Update som källa
DISM /Online /Cleanup-Image /RestoreHealth
# 4. Om klienten inte når Windows Update, peka mot en lokal WIM-fil
# (montera install.wim från Windows 11 24H2 ISO på t.ex. E:\sources)
DISM /Online /Cleanup-Image /RestoreHealth `
/Source:WIM:E:\sources\install.wim:6 /LimitAccess
# 5. När DISM är klart, kör SFC för att verifiera skyddade systemfiler
sfc /scannow
Index 6 i WIM-exemplet motsvarar Windows 11 Pro 24H2. Använd DISM /Get-WimInfo /WimFile:E:\sources\install.wim för att lista vilket index din specifika edition har. Flaggan /LimitAccess hindrar DISM från att försöka kontakta Windows Update parallellt, vilket är viktigt på offline-nät.
Varför fastnar Windows Update på samma procent?
När en uppdatering "fastnar" på exempelvis 23 % eller 99 % i flera timmar handlar det nästan aldrig om att den verkligen är aktiv. Windows Update visar bara den senast rapporterade förloppsraden. Den faktiska orsaken är oftast en av tre saker: BITS-tjänsten har förlorat sin uppladdnings-/nedladdningskö, en delivery-optimeringsnod är otillgänglig, eller en tidigare uppdatering i kedjan väntar på en omstart som aldrig genomfördes.
Diagnostisera med dessa kommandon innan du tvingar fram en omstart:
# Visa aktiva BITS-jobb och deras status
Get-BitsTransfer -AllUsers | Format-Table DisplayName, JobState, BytesTotal, BytesTransferred
# Om jobben är i tillståndet "TransientError" eller "Suspended"
Get-BitsTransfer -AllUsers | Remove-BitsTransfer
# Kontrollera om Windows väntar på omstart
$reboot = (Get-Item 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending' -ErrorAction SilentlyContinue) -ne $null
Write-Host "Väntande omstart: $reboot"
# Visa Delivery Optimization-status (LAN peer-cache)
Get-DeliveryOptimizationStatus | Select-Object FileId, Status, BytesFromHttp, BytesFromPeers, BytesFromCacheServer
Om Delivery Optimization visar att 0 byte hämtas från HTTP men förloppet ökar långsamt, kan en peer i det lokala nätverket vara den begränsande faktorn (typiskt på filialkontor med långsam WAN-länk). Sätt grupprincipen Download Mode till HTTP only (0) tillfälligt för att verifiera. För en djupare titt på hur peer-caching påverkar leveransen, se Microsofts officiella dokumentation om Delivery Optimization.
WSUS-specifika fel och TLS 1.2-kravet 2026
För miljöer som fortfarande använder WSUS som godkännandepunkt är 2026 ett kritiskt år. Microsoft har deprecierat WSUS-rollen som funktion i Windows Server (annonserat i september 2024, ingen ny utveckling), och från och med februari 2026 kräver Microsoft Update Catalog och underliggande synkroniserings-API:er TLS 1.2 minimum. Klienter som fortfarande förhandlar TLS 1.0/1.1 returnerar 0x8024401C (timeout) eller 0x80072EFE (connection closed).
Aktivera TLS 1.2 på WSUS-servern och alla klienter med följande registerinställningar:
# Kör som administratör på både WSUS-server och klient
# .NET Framework: använd starka kryptografiska protokoll
$paths = @(
'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319'
)
foreach ($p in $paths) {
if (-not (Test-Path $p)) { New-Item -Path $p -Force | Out-Null }
Set-ItemProperty -Path $p -Name 'SystemDefaultTlsVersions' -Value 1 -Type DWord
Set-ItemProperty -Path $p -Name 'SchUseStrongCrypto' -Value 1 -Type DWord
}
# SCHANNEL: aktivera TLS 1.2 explicit
$tls = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2'
foreach ($side in 'Client','Server') {
$sub = "$tls\$side"
if (-not (Test-Path $sub)) { New-Item -Path $sub -Force | Out-Null }
Set-ItemProperty -Path $sub -Name 'Enabled' -Value 1 -Type DWord
Set-ItemProperty -Path $sub -Name 'DisabledByDefault' -Value 0 -Type DWord
}
Write-Host "TLS 1.2 aktiverat. Starta om servern för att verkställa." -ForegroundColor Green
Om du har en hanterad miljö med kombination av WSUS och molnpolicy, är vår erfarenhet att flytta Windows 11-klienter över till Windows Update for Business via Intune ger färre felfall — det undviker hela TLS-frågan, eftersom anslutningen sker direkt mot Microsofts CDN med moderna chiffersviter. Vår tidigare guide om felsökning av Microsoft Intune-enrollment går igenom enrollment-flödet i detalj.
Fjärrfelsökning med PSWindowsUpdate
Den community-underhållna PowerShell-modulen PSWindowsUpdate på PowerShell Gallery är oumbärlig för helpdesk-tekniker som behöver lista, installera eller dölja uppdateringar på fjärrklienter utan att starta en RDP-session. Den är gratis, signerad av författaren Michal Gajda och har över 200 miljoner nedladdningar.
# Installera modulen för alla användare (kräver administratör)
Install-Module -Name PSWindowsUpdate -Scope AllUsers -Force
# Tillåt signerade skript i den aktuella sessionen
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
# Visa väntande uppdateringar
Get-WindowsUpdate
# Installera alla viktiga uppdateringar utan att starta om
Install-WindowsUpdate -AcceptAll -IgnoreReboot
# Fjärrkommando: visa uppdateringar på en användares dator
Get-WUList -ComputerName WS-HKDESK-12 -Verbose
# Dölj en problematisk uppdatering (t.ex. en känd dålig drivrutin)
Hide-WindowsUpdate -KBArticleID KB5040000 -Confirm:$false
# Tvinga uppdateringshistorikrapport för en ticketing-bilaga
Get-WUHistory -MaxDate (Get-Date).AddDays(-30) |
Export-Csv -Path "C:\HelpDesk\WU-History-$env:COMPUTERNAME.csv" -NoTypeInformation
För korrekt felsökning av tickethantering, exempelvis när en uppdatering bryter en specifik applikation, är det värt att läsa vår guide om VPN-felsökning i Windows 11, eftersom Always On VPN-anslutningar ofta påverkas av kumulativa uppdateringar som ändrar IKEv2-stacken.
Var hittar jag Windows Update-loggar?
Windows Update slutade skriva en sammanhängande WindowsUpdate.log någonstans runt Windows 10 1607. Istället loggar Windows Update Agent till ETW-spår som måste sammanställas. Det är förvirrande för nya supporttekniker, men kommandot nedan återskapar den klassiska loggen i hemmappen så att du kan greppa efter felkoder.
# Generera en sammanhängande WindowsUpdate.log på skrivbordet
Get-WindowsUpdateLog -LogPath "$env:USERPROFILE\Desktop\WindowsUpdate.log"
# Hitta alla rader med felkoder
Select-String -Path "$env:USERPROFILE\Desktop\WindowsUpdate.log" -Pattern '0x[0-9A-F]{8}'
# Setup-loggar för funktionsuppdateringar (in-place upgrades)
# Finns under $WINDOWS.~BT\Sources\Panther under själva uppgraderingen
Get-Content "C:\`$WINDOWS.~BT\Sources\Panther\setuperr.log" -Tail 50
# Eventlog-kanaler värda att granska
Get-WinEvent -LogName 'Microsoft-Windows-WindowsUpdateClient/Operational' -MaxEvents 25
Get-WinEvent -LogName 'System' | Where-Object { $_.ProviderName -eq 'Microsoft-Windows-WindowsUpdateClient' } | Select-Object -First 25
HRESULT-värden som 0x80070002 kan dekoderas genom att titta på de fyra sista hex-siffrorna: 0002 motsvarar ERROR_FILE_NOT_FOUND i Win32-fellistan. Du hittar fullständiga mappningar i winerror.h i Windows SDK, eller (vanligare) använder ett snabbverktyg som Err.exe från Microsoft eller online-sökning mot HRESULT-tabellerna.
Övergången till Windows Update for Business
För svenska företag med molnhanterade enheter via Intune är Windows Update for Business (WUfB) numera standardvägen. WUfB konfigureras via grupprincip eller MDM-policy och styr när uppdateringar erbjuds, hur länge de fördröjs och vilka kanaler enheten lyssnar på, utan att kräva en lokal WSUS-server.
De vanligaste WUfB-policyerna i Intune motsvarar dessa grupprinciper:
Branch readiness level: bestämmer om enheten är i "Windows Insider"-kanalen eller den allmänna kanalen.
Quality update deferral period: 0–30 dagars fördröjning för kumulativa uppdateringar — vi rekommenderar 7 dagar för pilotringar och 14 dagar för produktion.
Feature update deferral period: upp till 365 dagar för funktionsuppdateringar (24H2 → 25H2 etc.).
Pause updates: nödbroms för att pausa uppdateringar i upp till 35 dagar om en kvalitetsuppdatering visar sig vara problematisk.
Active hours: tidsfönster när Windows inte automatiskt startar om för att slutföra installationer.
När du felsöker WUfB-klienter, kontrollera utdata från Get-MpComputerStatus samt registret under HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings, där lagras policyvärdena som Intune har skickat. Om de saknas har MDM-kanalen inte applicerat policyn, och du behöver felsöka enrollment först. Vår guide om Active Directory-felsökning är användbar när hybridanslutna enheter inte får policy från någondera sidan.
Vanliga frågor
Hur tvingar jag fram en Windows Update manuellt?
Öppna en förhöjd PowerShell-prompt och kör UsoClient StartInteractiveScan följt av UsoClient StartDownload och UsoClient StartInstall. Alternativt: Install-WindowsUpdate -AcceptAll -IgnoreReboot från PSWindowsUpdate-modulen. Cmdleten wuauclt /detectnow är deprecierad sedan Windows 10 1809 och fungerar inte längre på Windows 11.
Vad betyder felkod 0x80070002 i Windows Update?
0x80070002 är HRESULT-motsvarigheten till ERROR_FILE_NOT_FOUND. I Windows Update-sammanhang betyder det att Windows Update Agent inte kan hitta en fil i sin nedladdningscache, oftast efter en avbruten nedladdning eller diskrensning. Lösningen är att återställa Windows Update-komponenterna och köra om sökningen.
Är WSUS deprecierat 2026?
Ja, WSUS-rollen i Windows Server är deprecierad sedan Microsofts annonsering i september 2024. Den fungerar fortfarande men får inga nya funktioner. Microsoft rekommenderar migration till Windows Update for Business via Intune eller Microsoft Connected Cache för bandbreddsoptimering på filialkontor.
Varför misslyckas Windows Update efter ett återställningsförsök?
Om återställning av komponenter inte hjälper är komponentlagret (WinSxS) sannolikt korrupt. Kör DISM /Online /Cleanup-Image /RestoreHealth följt av sfc /scannow. Om DISM rapporterar att källan inte är tillgänglig, peka mot en lokal WIM-fil med /Source:WIM:-parametern.
Hur rensar jag SoftwareDistribution-mappen säkert?
Stoppa tjänsterna wuauserv och bits, döp om C:\Windows\SoftwareDistribution till exempelvis SoftwareDistribution.bak, och starta om tjänsterna. Windows skapar en ny tom katalog automatiskt. Att radera istället för att döpa om kan ge problem om en uppdatering är halvinstallerad. Döp om så har du en återställningsväg.
BitLocker-ärenden har ökat kraftigt sedan Windows 11 aktiverar kryptering automatiskt. Här får du allt helpdesk behöver — från att hitta återställningsnycklar i Entra ID och AD till PowerShell-kommandon och förebyggande GPO-åtgärder.