0x80070012: почему возникает при обновлении Windows 10 и как от нее избавиться
Некоторые пользователи Windows 10 сообщают, что они натыкаются на ошибку 0x80070012 всякий раз, когда система проводит сканирование на наличие новых обновлений. И нет, подобная ошибка, если верить заявлениям в сети, появляется исключительно на «десятке».
Рассмотрев проблему поближе, мы выясняли, что ошибка 0x80070012 может возникать по следующему ряду причин:
- Типичный баг в работе одного из компонентов Центра обновления. Центр обновления вашего Windows 10 состоит из множества разнообразных компонентов, выполняющие самые разные задачи во время обновления системы. В некоторых случаях один из таких компонентов может начать работать неправильно либо и вовсе перестать работать.
- Одна или несколько служб Центра обновления зависли. В определенных случаях службы Центра обновления намертво зависают, что вызывает целый ряд проблем, включая и нашу сегодняшнюю 0x80070012. Избавиться от зависания можно с помощью автоматизированного средства устранения неполадок либо через специфические команды, вводимые в Командную строку системы.
- Повреждения системных файлов, хранилища компонентов и образа Windows 10. Еще один возможный сценарий — повреждение системных файлов, хранилища компонентов и образа операционной системы пользователя. Тяжело определить, что конкретно могло вызывать подобные повреждения, но от них можно избавиться, задействовав специальное программное обеспечение, например, SFC и DISM.
Хорошо, с причинами разобрались, а поэтому пора приниматься за решения. Всего решений будет несколько — мы рекомендуем выполнять их в том порядке, в котором они расположены. Проще говоря, не стоит сразу пускаться во все тяжкие, решив переустановить свою ОС просто из-за того, что на нее не хотят становиться новые обновления.
Решение №1 Запуск средства устранения неполадок
Достаточно большое количество пользователей в сети утверждают, что средство устранение неполадок, встроенное в Windows 10, не способно решать проблемы, которые возникают в системе. Тем не менее мы все-таки рекомендуем вам воспользоваться этим средством, потому как оно хоть и редко, но все же может устранять ошибки Центра обновления.
- Нажмите на клавиатуре комбинацию Win+I, чтобы открыть перед собой окошко «Параметры».
- В параметрах системы найдите раздел «Обновление и безопасность» и кликните на него ЛКМ.
- Далее перейдите в подраздел «Устранение неполадок».
- Найдите в списке пункт «Центр обновления Windows» и выберите его ЛКМ.
- Чуть ниже появится кнопка «Запустить средство устранения неполадок» — нажмите на нее.
- Теперь вам необходимо выполнять все рекомендации от средства в новом окошке, пытаясь устранить возникшие проблемы.
- Перезагрузите свой компьютер, как только закончите работать со средством.
Вернувшись в ОС, откройте Центр обновления и запустите обновление Windows. Возможно, на сей раз все пройдет нормально и ошибка 0x80070012 не возникнет. Если ничего не изменилось, попробуйте воспользоваться другими решениями.
Решение №2 Запуск SFC и DISM
Повреждение системных файлов, хранилища компонентов и образа системы — все это может вызывать проблемы во время обновления Windows 10. К счастью, поврежденные элементы ОС можно восстановив, пустив в ход такие удобные программки, так SFC и DISM. Сейчас мы покажем вам, как запустить обе эти утилиты через Командную строку.
- Нажмите на клавиатуре комбинацию Win+R, чтобы вызвать перед собой окошко «Выполнить».
- Пропишите в пустой строчке в окна значение «cmd» и нажмите комбинацию Ctrl+Shift+Enter (для вызова Командной строки от имени администратора).
- Вставьте в системную консоль команду «sfc /scannow» (без кавычек) и нажмите Enter.
- Подождите окончания работы утилиты и перезагрузите компьютер.
- Снова откройте Командную строку от имени администратора.
- Далее вставьте в консоль команду «Dism /Online /Cleanup-Image /CheckHealth» и нажмите Enter.
- Подождите окончания работы команды и ознакомьтесь с результатами сканирования.
- Теперь введите команду «Dism /Online /Cleanup-Image /ScanHealth» и нажмите Enter.
- Ознакомьтесь с результатами второго сканирования. Утилита DISM нашла какие-то повреждения в системе? Тогда пора пускать в ход последнюю команду.
- Вставьте в консоль команду «Dism /Online /Cleanup-Image /RestoreHealth» и нажмите Enter.
- Дождитесь окончания процесса восстановления, после чего перезагрузите ПК.
SFC и DISM должны были исправить повреждения в системе. Зайдите в Центр обновления Windows 10 и убедитесь, что ошибка 0x80070012 исчезла. Ничего не изменилось? Двигаемся дальше…
Решение №3 Применение точки восстановления
В некоторых случаях нормальному обновлению Windows 10 может препятствовать стороннее ПО, которое было установлено в ОС в недалеком прошлом. Определить, что конкретно вызывает проблемы — задачка не из легких, но ее можно упростить, применив точку восстановления Windows. По умолчанию точка восстановления создается всякий раз, когда в систему устанавливаются те или иные приложения.
Вот как запускается восстановление Windows 10 с помощью одноименной точки:
- Нажмите на клавиатуре комбинацию Win+R, чтобы вызвать перед собой окошко «Выполнить».
- Пропишите в пустой строчке в окна значение «control» и нажмите Enter.
- Выберите в режиме просмотра Панели управления «Крупные значки» или «Мелкие значки», чтобы облегчить поиски нужного компонента системы.
- Перейдите в раздел «Восстановление» и выберите пункт «Запуск восстановления системы».
- В новом окошке кликните на кнопку «Далее», выберите подходящую точку восстановления и еще раз нажмите «Далее».
- Нажмите на кнопку «Готово» и подождите завершения восстановления системы.
В процессе восстановления ваш ПК будет перезагружен, а поэтому не нужно паниковать, когда это произойдет. Зайдите в Центр обновления и попытайтесь обновить систему еще раз. После использования точки восстановления ошибка 0x80070012 должна исчезнуть, но если вы все еще сталкиваетесь с ней, то можно попробовать еще одно решение.
Решение №4 Восстановление компонентов Центра обновления
Переходим к так называемой «тяжелой артиллерии» — восстановление компонентов Центра обновления Windows 10. Звучит как что-то сложное, но на деле — это простая операция, по крайней мере, если вы придерживаетесь четких указаний. Итак, осуществить восстановление компонентов Центра обновления можно двумя способами: ручным и автоматическим. Мы рассмотрим оба способами, но мы советуем воспользоваться автоматическим, и не морочить себе голову.
Восстановление компонентов Центра обновления вручную
- Нажмите Win+R, чтобы вызвать окошко «Выполнить».
- Пропишите значение «cmd» и нажмите Ctrl+Shift+Enter.
- Выполните в консоли следующий ряд команд:
- net stop wuauserv
- net stop cryptSvc
- net stop bits
- net stop msiserver
- ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
- ren C:\Windows\System32\catroot2 Catroot2.old
- net start wuauserv
- net start cryptSvc
- net start bits
- net start msiserver
- Перезагрузите ПК.
Восстановление компонентов Центра обновления в автоматическом режиме
- Нажмите ПКМ на Рабочем столе и выберите «Создать→Текстовый документ».
- Вставьте в созданный файл следующий скрипт:
- @ECHO OFF
echo .
echo .
PAUSE
echo .
set b=0:bits
set /a b=%b%+1
if %b% equ 3 (
goto end1
)
net stop bits
echo Checking the bits service status.
sc query bits | findstr /I /C:”STOPPED”
if not %errorlevel%==0 (
goto bits
)
goto loop2:end1
cls
echo.
echo Failed to reset Windows Update due to bits service failing to stop
echo Please run the script as administartor by right clicking the WuReset file or your BITS service isn’t responding.
echo.
pause
goto Start:loop2
set w=0:wuauserv
set /a w=%w%+1
if %w% equ 3 (
goto end2
)
net stop wuauserv
echo Checking the wuauserv service status.
sc query wuauserv | findstr /I /C:”STOPPED”
if not %errorlevel%==0 (
goto wuauserv
)
goto loop3:end2
cls
echo.
echo Failed to reset Windows Update due to wuauserv service failing to stop.
echo.
pause
goto Start:loop3
set app=0:appidsvc
set /a app=%app%+1
if %app% equ 3 (
goto end3
)
net stop appidsvc
echo Checking the appidsvc service status.
sc query appidsvc | findstr /I /C:”STOPPED”
if not %errorlevel%==0 (
goto appidsvc
)
goto loop4:end3
cls
echo.
echo Failed to reset Windows Update due to appidsvc service failing to stop.
echo.
pause
goto Start:loop4
set c=0:cryptsvc
set /a c=%c%+1
if %c% equ 3 (
goto end4
)
net stop cryptsvc
echo Checking the cryptsvc service status.
sc query cryptsvc | findstr /I /C:”STOPPED”
if not %errorlevel%==0 (
goto cryptsvc
)
goto Reset:end4
cls
echo.
echo Failed to reset Windows Update due to cryptsvc service failing to stop.
echo.
pause
goto Start:Reset
Ipconfig /flushdns
del /s /q /f “%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat”cd /d %windir%\system32
if exist “%SYSTEMROOT%\winsxs\pending.xml.bak” del /s /q /f “%SYSTEMROOT%\winsxs\pending.xml.bak”
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.bak” rmdir /s /q “%SYSTEMROOT%\SoftwareDistribution.bak”
if exist “%SYSTEMROOT%\SoftwareDistribution” (
attrib -r -s -h /s /d “%SYSTEMROOT%\SoftwareDistribution”
ren “%SYSTEMROOT%\SoftwareDistribution” SoftwareDistribution.bak
)if exist “%SYSTEMROOT%\system32\Catroot2.bak” rmdir /s /q “%SYSTEMROOT%\system32\Catroot2.bak”
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.bak” del /s /q /f “%SYSTEMROOT%\WindowsUpdate.log.bak”
if exist “%SYSTEMROOT%\WindowsUpdate.log” (
attrib -r -s -h /s /d “%SYSTEMROOT%\WindowsUpdate.log”
ren “%SYSTEMROOT%\WindowsUpdate.log” WindowsUpdate.log.bak
)sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)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
regsvr32 /s wudriver.dll
netsh winsock reset
netsh winsock reset proxy:Start
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc
echo Task completed sucessfully!Please restart your computer and check for the updates again.
PAUSE
- Нажмите на пункт «Файл» в строке меню Блокнота и выберите «Сохранить как…».
- Задайте файлу имя «ВосстановлениеЦО» и (обязательно!) измените его расширение с .txt на .bat.
- Нажмите ПКМ на файл «ВосстановлениеЦО.bat» и выберите «Запуск от имени администратора».
- Подождите несколько секунд до завершения процесса восстановления компонентов Центра обновления, после чего перезагрузите свой ПК.
Как только войдете в ОС, запустите установку обновлений еще раз. Ошибка 0x80070012 все еще донимает вас, даже после всех вышеуказанных методов? Что же, вы явно имеете дело с проблемой, которая находится на глубинном уровне системы. На данном этапе вы можете:
- Установить проблемный апдейт прямо из каталога Центра обновлений Майкрософт.
- Вернуть ПК в исходное состояние (через Параметры).
- Полностью переустановить Windows 10.
Выбирать вам, но знайте, что каждый из этих вариантов гарантировано избавит вас от ошибки 0x80070012.