Методы решения ошибки 0xc1900204 на Windows 7, 8 и 10
Ошибка 0xc1900204 возникает в процессе установки нового обновления для Windows 7, 8 и 10. Проблема крайне распространенная, но легко решается при помощи нескольких элементарных (и не очень) методов. Ознакомиться с этими методами вы можете ниже в статье.
Устранение ошибки 0xc1900204 при апдейте Windows
Метод №1 Корректировка реестра Windows
Этот метод будет чрезвычайно полезен в том случае, если директория, в которую по умолчанию устанавливаются программы для Windows, была изменена каким-то процессом в системе. Метод поможет избавиться от ошибки 0xc1900204, но вам потребуется слегка покопаться в реестре своей Windows.
- Нажмите Win+R;
- пропишите значение regedit и нажмите Enter;
- перейдите в ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion;
- нажмите правой кнопкой мыши на параметр ProgramFilesDir и выберите «Изменить»;
- удалите данные со строчки «Значения» и вставьте туда путь к папке «Program Files» на вашем компьютере;
- сохраните изменения и закройте окошко редактора реестра;
- перезагрузите компьютер.
Попытайтесь обновить Windows еще раз и проверьте наличие ошибки 0xc1900204.
Метод №2 Применение средства устранения неполадок
К счастью, в Windows есть особое средство, при помощи которого можно разрешить кое-какие базовые неполадки в системе. Попробуйте воспользоваться этим средством и посмотрите, получится ли у вас после этого нормально обновить систему. Чтобы запустить средство устранения неполадок, сделайте следующее:
- откройте Параметры (Win+I);
- перейдите в «Обновление и безопасность→Устранение неполадок»;
- выберите пункт «Центр обновления Windows»;
- нажмите на кнопку «Запустить средство устранения неполадок»;
- следуйте инструкциям у себя на экране и примените решение, которое будет вам предложено.
Метод №3 Освобождение дополнительного места на диске
Довольно простой метод: внимательно проходим глазами по своему диску и удаляем все ненужное, тем самым освобождая дополнительное место. Все дело в том, что ошибка 0xc1900204 может возникать из-за недостатка свободного места, необходимого для установки новых обновлений.
Метод №4 Сброс компонентов Windows
Этим методом стоит заниматься только в самую последнюю очередь. Центр обновления Windows начал «барахлить»? Тогда вы можете попробовать сбросить все его компоненты. Процесс достаточно трудоемкий, включает в себя множество различных команд. Тем не менее вы можете облегчить себе задачу, прибегнув к созданию удобного BAT-файла, который сделает все за вас.
Итак, создайте у себя на Рабочем столе элементарный текстовый файл. Откройте файл, после чего вставьте в него весь следующий список:
:: Run the reset Windows Update components.
:: void components();
:: /*************************************************************************************/
:components
:: —— Stopping the Windows Update services ——
call :print Stopping the Windows Update services.
net stop bitscall :print Stopping the Windows Update services.
net stop wuauservcall :print Stopping the Windows Update services.
net stop appidsvccall :print Stopping the Windows Update services.
net stop cryptsvccall :print Canceling the Windows Update process.
taskkill /im wuauclt.exe /f
:: —— Checking the services status ——
call :print Checking the services status.sc query bits | findstr /I /C:»STOPPED»
if %errorlevel% NEQ 0 (
echo. Failed to stop the BITS service.
echo.
echo.Press any key to continue . . .
pause>nul
goto :eof
)call :print Checking the services status.
sc query wuauserv | findstr /I /C:»STOPPED»
if %errorlevel% NEQ 0 (
echo. Failed to stop the Windows Update service.
echo.
echo.Press any key to continue . . .
pause>nul
goto :eof
)call :print Checking the services status.
sc query appidsvc | findstr /I /C:»STOPPED»
if %errorlevel% NEQ 0 (
sc query appidsvc | findstr /I /C:»OpenService FAILED 1060″
if %errorlevel% NEQ 0 (
echo. Failed to stop the Application Identity service.
echo.
echo.Press any key to continue . . .
pause>nul
if %family% NEQ 6 goto :eof
)
)call :print Checking the services status.
sc query cryptsvc | findstr /I /C:»STOPPED»
if %errorlevel% NEQ 0 (
echo. Failed to stop the Cryptographic Services service.
echo.
echo.Press any key to continue . . .
pause>nul
goto :eof
):: —— Delete the qmgr*.dat files ——
call :print Deleting the qmgr*.dat files.del /s /q /f «%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat»
del /s /q /f «%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr*.dat»:: —— Renaming the softare distribution folders backup copies ——
call :print Deleting the old software distribution backup copies.cd /d %SYSTEMROOT%
if exist «%SYSTEMROOT%\winsxs\pending.xml.bak» (
del /s /q /f «%SYSTEMROOT%\winsxs\pending.xml.bak»
)
if exist «%SYSTEMROOT%\SoftwareDistribution.bak» (
rmdir /s /q «%SYSTEMROOT%\SoftwareDistribution.bak»
)
if exist «%SYSTEMROOT%\system32\Catroot2.bak» (
rmdir /s /q «%SYSTEMROOT%\system32\Catroot2.bak»
)
if exist «%SYSTEMROOT%\WindowsUpdate.log.bak» (
del /s /q /f «%SYSTEMROOT%\WindowsUpdate.log.bak»
)call :print Renaming the software distribution folders.
if exist «%SYSTEMROOT%\winsxs\pending.xml» (
takeown /f «%SYSTEMROOT%\winsxs\pending.xml»
attrib -r -s -h /s /d «%SYSTEMROOT%\winsxs\pending.xml»
ren «%SYSTEMROOT%\winsxs\pending.xml» pending.xml.bak
)
if exist «%SYSTEMROOT%\SoftwareDistribution» (
attrib -r -s -h /s /d «%SYSTEMROOT%\SoftwareDistribution»
ren «%SYSTEMROOT%\SoftwareDistribution» SoftwareDistribution.bak
if exist «%SYSTEMROOT%\SoftwareDistribution» (
echo.
echo. Failed to rename the SoftwareDistribution folder.
echo.
echo.Press any key to continue . . .
pause>nul
goto :eof
)
)
if exist «%SYSTEMROOT%\system32\Catroot2» (
attrib -r -s -h /s /d «%SYSTEMROOT%\system32\Catroot2»
ren «%SYSTEMROOT%\system32\Catroot2» Catroot2.bak
)
if exist «%SYSTEMROOT%\WindowsUpdate.log» (
attrib -r -s -h /s /d «%SYSTEMROOT%\WindowsUpdate.log»
ren «%SYSTEMROOT%\WindowsUpdate.log» WindowsUpdate.log.bak
):: —— Reset the BITS service and the Windows Update service to the default security descriptor ——
call :print Reset the BITS service and the Windows Update service to the default security descriptor.sc.exe sdset wuauserv D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD)
sc.exe sdset bits D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD)
sc.exe sdset cryptsvc D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD)
sc.exe sdset trustedinstaller D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD):: —— Reregister the BITS files and the Windows Update files ——
call :print Reregister the BITS files and the Windows Update files.cd /d %SYSTEMROOT%\system32
regsvr32.exe /s atl.dll
regsvr32.exe /s urlmon.dll
regsvr32.exe /s mshtml.dll
regsvr32.exe /s shdocvw.dll
regsvr32.exe /s browseui.dll
regsvr32.exe /s jscript.dll
regsvr32.exe /s vbscript.dll
regsvr32.exe /s scrrun.dll
regsvr32.exe /s msxml.dll
regsvr32.exe /s msxml3.dll
regsvr32.exe /s msxml6.dll
regsvr32.exe /s actxprxy.dll
regsvr32.exe /s softpub.dll
regsvr32.exe /s wintrust.dll
regsvr32.exe /s dssenh.dll
regsvr32.exe /s rsaenh.dll
regsvr32.exe /s gpkcsp.dll
regsvr32.exe /s sccbase.dll
regsvr32.exe /s slbcsp.dll
regsvr32.exe /s cryptdlg.dll
regsvr32.exe /s oleaut32.dll
regsvr32.exe /s ole32.dll
regsvr32.exe /s shell32.dll
regsvr32.exe /s initpki.dll
regsvr32.exe /s wuapi.dll
regsvr32.exe /s wuaueng.dll
regsvr32.exe /s wuaueng1.dll
regsvr32.exe /s wucltui.dll
regsvr32.exe /s wups.dll
regsvr32.exe /s wups2.dll
regsvr32.exe /s wuweb.dll
regsvr32.exe /s qmgr.dll
regsvr32.exe /s qmgrprxy.dll
regsvr32.exe /s wucltux.dll
regsvr32.exe /s muweb.dll
regsvr32.exe /s wuwebv.dll:: —— Resetting Winsock ——
call :print Resetting Winsock.
netsh winsock reset:: —— Resetting WinHTTP Proxy ——
call :print Resetting WinHTTP Proxy.if %family% EQU 5 (
proxycfg.exe -d
) else (
netsh winhttp reset proxy
):: —— Set the startup type as automatic ——
call :print Resetting the services as automatics.
sc.exe config wuauserv start= auto
sc.exe config bits start= delayed-auto
sc.exe config cryptsvc start= auto
sc.exe config TrustedInstaller start= demand
sc.exe config DcomLaunch start= auto:: —— Starting the Windows Update services ——
call :print Starting the Windows Update services.
net start bitscall :print Starting the Windows Update services.
net start wuauservcall :print Starting the Windows Update services.
net start appidsvccall :print Starting the Windows Update services.
net start cryptsvccall :print Starting the Windows Update services.
net start DcomLaunch:: —— End process ——
call :print The operation completed successfully.echo.Press any key to continue . . .
pause>nul
goto :eof
:: /*************************************************************************************/
Да, список выглядит крайне странно, но поверьте: все это вам действительно понадобится. Сохраните изменения в текстовом файле и закройте его. Теперь нажмите на него правой кнопкой мыши и выберите «Переименовать». Задайте файлу любое понравившееся вам имя, например, WinUpReset, и измените его расширение с TXT на, внимание, BAT. Обязательно сделайте последнее, иначе ничего не сработает!
Нажмите на него еще раз ПКМ и выберите «Изменить». Хорошенько пройдитесь глазами по командам и убедитесь, что ничего не было пропущено. Чтобы начать сброс компонентов Центра обновления Windows, дважды кликните на WinUpReset.bat и дождитесь окончания процесса.
Запускаем обновление Windows и смотрим, покажется ли ошибка 0xc1900204.