Descripción

Este Script permite restablecer la configuración del Agente de Windows Update solucionando problemas con las actualizaciones de Windows.

Requerimientos

Historial de versión

Información de desarrollo

Este Script puede ser modificado para ser compatible con otros sistemas operativos (versiones de prueba o empresariales de windows).

Para mayor información sobre las versiones del sistema, haz clic aquí.

Para mayor información sobre los componentes de Windows Update, haz clic aquí.

Código

Restablecer los componentes de Windows Update.

Windows Shell Script
Editar script|Remove
:: Restablece los componentes de Windows Update. 
:: void components(); 
:: /*************************************************************************************/ 
:components 
    :: ----- Se detienen los servicios de Windows Update ----- 
    call :print Deteniendo los servicios de Windows Update. 
    net stop bits 
 
    call :print Deteniendo los servicios de Windows Update. 
    net stop wuauserv 
 
    call :print Deteniendo los servicios de Windows Update. 
    net stop appidsvc 
 
    call :print Deteniendo los servicios de Windows Update. 
    net stop cryptsvc 
 
    :: ----- Se verifica el estado de los servicios ----- 
    call :print Verificando el estado de los servicios. 
 
    sc query bits | findstr /I /C:"STOPPED" 
    if %errorlevel% NEQ 0 ( 
        echo.    Error al detener el servicio de Servicio de transferencia inteligente en segundo plano BITS. 
        echo. 
        echo.Presione una tecla para cerrar la ventana . . .  
        pause>nul 
        goto :eof 
    ) 
 
    call :print Verificando el estado de los servicios. 
 
    sc query wuauserv | findstr /I /C:"STOPPED" 
    if %errorlevel% NEQ 0 ( 
        echo.    Error al detener el servicio de Windows Update. 
        echo. 
        echo.Presione una tecla para cerrar la ventana . . .  
        pause>nul 
        goto :eof 
    ) 
 
    call :print Verificando el estado de los servicios. 
 
    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.    Error al detener el servicio de Identidad de aplicaci¢n. 
            echo. 
            echo.Presione una tecla para cerrar la ventana . . .  
            pause>nul 
            if %familia% NEQ 6 goto :eof 
        ) 
    ) 
 
    call :print Verificando el estado de los servicios. 
 
    sc query cryptsvc | findstr /I /C:"STOPPED" 
    if %errorlevel% NEQ 0 ( 
        echo.    Error al detener el servicio de Servicios de cifrado. 
        echo. 
        echo.Presione una tecla para cerrar la ventana . . .  
        pause>nul 
        goto :eof 
    ) 
 
    :: ----- Se eliminan los archivos qmgr*.dat ----- 
    call :print Eliminando los archivos qmgr*.dat. 
 
    del /s /q /f "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat" 
    del /s /q /f "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr*.dat" 
 
    :: ----- Se renombra la carpeta SoftwareDistribution ----- 
    call :print Eliminando las copias de seguridad de Distribuci¢n de Software. 
 
    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 Renombrando los directorios de Distribuci¢n de Software. 
 
    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 
    ) 
 
    :: ----- Se restablecen los servicios para el descriptor de seguridad ----- 
    call :print Restableciendo los servicios de BITS y Windows Update para el descriptor de seguridad predeterminado. 
 
    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) 
 
    :: ----- Se vuelven a registrar los archivos de BITS ----- 
    call :print Registrando los archivos de BITS. 
 
    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 
 
    :: ----- Se restablece Winsock ----- 
    call :print Restableciendo Winsock. 
    netsh winsock reset 
 
    :: ----- Se restablece el Proxy ----- 
    call :print Restableciendo el Proxy. 
 
    if %familia% EQU 5 ( 
        proxycfg.exe -d 
    ) else ( 
        netsh winhttp reset proxy 
    ) 
 
    :: ----- Se establecen los servicios automáticos ----- 
    call :print Restableciendo los servicios como autom ticos. 
    sc config wuauserv start= auto 
    sc config bits start= auto 
    sc config DcomLaunch start= auto 
 
    :: ----- Se inician los servicios de Windows Update ----- 
    call :print Reiniciando servicios de Windows Update. 
    net start bits 
 
    call :print Reiniciando servicios de Windows Update. 
    net start wuauserv 
 
    call :print Reiniciando servicios de Windows Update. 
    net start appidsvc 
 
    call :print Reiniciando servicios de Windows Update. 
    net start cryptsvc 
 
    call :print Reiniciando servicios de Windows Update. 
    net start DcomLaunch 
 
    :: ----- Se finaliza el proceso ----- 
    call :print La operaci¢n se complet¢ correctamente. 
 
    echo.Presione una tecla para regresar al men£ . . .  
    pause>nul 
goto :eof 
:: /*************************************************************************************/ 
 
 

Explorar soluciones en línea.

Windows Shell Script
Editar script|Remove
:online 
 
call :print Buscando soluciones en l¡nea. 
 
start https://support.microsoft.com/es-us/gp/windows-update-issues/ 
 
goto :eof

Notas:

En caso de presentar problemas con acentos, puede remplazar los siguientes caracteres: