Cuando nos descargamos parches directamente de Microsoft Update Catalog normalmente el formato estándar suele ser una extensión .msu (Microsoft Update Standalone Installer) del paquete de actualización con su KB identificativo.
Para instalar un paquete de actualización de forma independiente sin hacerlo a través de las Windows Update de Microsoft Windows, es tan sencillo como ejecutar con doble clic el fichero msu de instalación y esperar a que finalice el proceso. Aunque no siempre ocurre así y resulta costoso realizar la instalación.
Recientemente instalado el paquete de actualización que corrige la vulnerabilidad crítica CVE-2020-1472 conocida como “Zerologon” de la cual hablé en Linkedin. Quería aplicar este parche en un Windows Server 2019 el parche correspondiente al KB4565349 encontrándome un error de incompatibilidad con el computador en el momento de aplicar el parche.

Figura 1: Error de instalación Windows Update Standalone “actualización no es aplicable”.
Una forma para resolver este tipo de problema de incompatibilidad en la aplicación de Updates.
Es realizarlo de forma manual haciendo uso de las herramientas en línea de comandos expand y dism (Deployment Image Servicing and Management).
Con expand podemos descomprimir el paquete .msu obteniendo así los ficheros .cab y con dism añadimos el paquete de actualización correspondiente al fichero principal .cab a la imagen de Windows actual indicando el parámetro /Online.
Aplicar paquetes de actualización .msu con expand y dism Link to heading
Una vez descargado el fichero .msu lo movemos en un directorio raíz. Por ejemplo C:\Updates\paquete.msu (previamente creamos esta nueva carpeta).
Con expand descomprimimos el paquete .msu, veremos varios ficheros y algunos .cab.
expand -f:* C:\Updates\paquete.msu C:\Updates\
El parámetro -f especifica los archivos de un archivo contenedor (.cab) que se desea expandir. Pueden usarse caracteres comodín (* o ?).
Con dism añadimos el fichero .cab de mayor tamaño a la imagen de Windows actual y esperamos a que termine el proceso.
# CMD
dism.exe /Online /Add-package /Packagepath:"C:\Updates\paquete.cab"
# PowerShell
Add-WindowsPackage -Online -PackagePath "C:\Updates\paquete.cab"
Una vez hecho esto reiniciamos la máquina. Para comprobar que la actualización se ha instalado correctamente podemos listar las updates instaladas en el sistema.
# CMD
systeminfo
# PowerShell
Get-HotFix
Restaurar configuración Windows Updates Link to heading
Esto se escapa del caso particular anterior pero lo comento como información adicional. En el caso de que no sea posible aplicar actualizaciones de Windows de la forma tradicional y automática a través de las Windows Updates, una solución que suele funcionar en la mayoría de casos es renombrar o eliminar, dependiendo el caso y el espacio en disco del que se disponga, la carpeta donde se descargan por defecto los paquetes de actualizaciones SoftwareDistribution.
Cuando buscamos nuevas actualizaciones en Windows estas se descargan por defecto en la carpeta C:\Windows\SoftwareDistribution una vez descargadas, Windows aplica/instala estas actualizaciones en el sistema y después de un reinicio las sigue manteniendo en esta ubicación. Una forma de liberar espacio en disco y también restaurar su configuración en caso de errores en el momento de descarga o aplicación de las updates de Windows es:
- Renombrar la carpeta SoftwareDistribution
- Intentar descargar y aplicar las nuevas actualizaciones.
- Eliminar la carpeta vieja renombrada.
Al renombrar esta carpeta Windows no puede encontrar el directorio por lo que la creará de nuevo y cargará la configuración inicial por defecto en lo relacionado a Windows Update.
Detén los servicios antes del rename
Antes de renombrar
SoftwareDistributionhay que parar los servicioswuauserv,cryptSvc,bitsymsiserver. Con ellos en marcha, los ficheros internos están bloqueados y el rename fallará conAccess is denied.
Para poder renombrar esta carpeta, previamente es necesario detener los procesos que funcionan como servicios de Windows que hacen uso de ella. Ejecutamos una consola cmd con privilegios administrativos.
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
Ya en consola podemos renombrarla directamente.
ren C:\Windows\SoftwareDistribution SoftwareDistribution_old
Volvemos a arrancar nuevamente los servicios.
net start wuauserv
net start cryptSvc
net start bits
net start msiserver
Comprobamos nuevamente si existen nuevas actualizaciones, esperamos a que se descarguen e instalen, reiniciamos el sistema y eliminamos la carpeta renombrada “SoftwareDistribution_old”.
Espero que estas dos posibles soluciones puedan resultar de ayuda.
Saludos!