Actualización fallida Windows 10 / Windows Server 2019: 0xC1900101 - 0x30018

Aunque la solución parece enfocada en Windows 10, también es aplicable a Windows Server 2019. Después de un par de reinicios en el proceso de actualización aparece el error:

0xC1900101 - 0x30018
Error de instalación en la fase FIRST_BOOT con un error durante la operación SYSPREP

Por suerte el proceso ha mejorado notablemente y el equipo se restaura al estado anterior a la instalación, antiguamente requería volver el sistema al estado actual desde las copias de seguridad, reinstalar, puntos de recuperación...

Googleando indican que el error esta asociado a un driver, ahora bien ¿cual? Si bien en sistemas operativo cliente Windows 10, puede ser probable algún habitual: gráfica, wifi, red, dispositivos USB... es necesario revisar los registros de instalación para comprobar cual es el que provoca el problema exactamente.

Podemos extraer de los directorios de instalación de un equipo remoto o ejecutar el programa desde el equipo que no se ha podido actualizar:

\$Windows.~bt\sources\panther
\$Windows.~bt\Sources\Rollback
\Windows\Panther
\Windows\Panther\NewOS

Microsoft dispone de la aplicación SetupDiag.exe que buscará en estos directorios para mostrar un resumen del driver causante del error en la actualización y por tanto del pantallazo azul.

Una vez ejecutado, se muestra en línea de comando el proceso, en el mismo directorio encontraremos un archivo ZIP con registros y un fichero log. Si ejecutamos varias veces, el fichero log se modifica y añade la nueva información y los archivos ZIP se crean con numeración adicional.

Para este ejemplo, en una actualización de Windows Server 2012 R2 a 2019 aparece un driver conflictivo con una controladora de fibra HBA: QLogic Fibre Channel Adapter 2560

Warning: Found a compliance block.

Error: Found a device installation failure during device install phase.
Device Installation failure detected!
Device Description: QLogic Fibre Channel Adapter
HardwareId: PCI\VEN_1077&DEV_2532&SUBSYS_015C1077
Inf Name: ql2x00.inf
Driver Version: 9.2.9.20

Será necesario buscar en el fabricante QLogic información de últimas versiones de los drivers... ley de murphy, no habría mejor forma para ilustrar este tipo de casos... de la versión instalada 9.2.9.20 a la 9.2.9.23 solo se registra en el histórico de cambios una corrección:

 * ER144923  : WS2019 BSOD when executing SAN boot (during rebbot test), 
   Scope     : All Adapters
   Resolution: Noncachedextension memory has stale value, zero this memory before using

 


Deshabilitar actualizaciones de Java en Windows Server

En entornos multiusuario Citrix o Remote App, la ejecución de "pequeños" programas con las sesiones de usuarios pueden llegar a causar sobreutilziación de recursos de manera innecesaria.

Una de las habituales si el servidor requiere algún tipo de complemento de Java, es el comprobador automático de actualizaciones. Para evitar tenerlo activo en múltiples sesiones, deberemos modificar el registro, para la versión de 64 bits en la ruta:

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy

 

Y para la versión de 32 bits en la ruta:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy

 

Actualizar esquema directorio activo: Windows Server 2019

Una de las tareas previas a la actualización in-place para servidores, físico y virtuales, con rol de Directorio Activo es la actualización/preparación del esquema AD. En este ejemplo se utiliza desde Server 2012 R2 a Server 2019, con el CD accesible desde la máquina en la ruta: D:\sources\adprep\adprep /forestprep ejecutamos el comando y esperamos a que finalice.

Dependiendo de la complejidad, y número de servidores, en el bosque comprobaremos que los cambios se han aplicado. Podemos realizarlo con los comandos dsquery:

dsquery * cn=schema,cn=configuration,dc=nombredominio,dc=local -scope base -attr objectVersion

Mediante powershell:

Get-ADObject "cn=schema,cn=configuration,dc=nombredominio,dc=local" -properties objectversion

Mediante la herramienta visual ADSIEdit.msc, comprobamos la revisión:

Y la versión del esquema:

Dependiendo de la versión del sistema operativo, objectVersion tendrá el valor correspondiente:

Ya podremos seguir con la actualización, comprobando el nivel funcional actual del directorio activo y replicando dede el maestro de operaciones:

D:\support\adprep>adprep /domainprep /gpprep
Adprep actualizó correctamente la información de todo el dominio.
Adprep va a actualizar la información de objeto de directiva de grupo (GPO) en el FSMO del maestro de infraestructura miservidor.dominio.local.
La operación gpprep 2 se realizó correctamente.
La operación gpprep 3 se realizó correctamente.
Adprep actualizó correctamente la información de objeto de directiva de grupo (GPO).

 

Automatizar instalación de roles y características en Windows Server

Cuando una tarea se vuelve repetitiva, siempre quedan opciones de agilizarlas; en el caso de la instalación de roles o características en Windows Server 2016, podemos exportar en un fichero XML desde la propia interfaz gráfica, si no estamos en modo core, para replicar o modificar en otro servidor:

En la parte inferior "Exportar opciones de configuración" genera un XML con las opciones que hemos seleccionado en el proceso: DeploymentConfig.xml

Por ejemplo, una parte sería:

<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
  <Obj RefId="0">
    <TN RefId="0">
      <T>System.Collections.ObjectModel.Collection`1[[System.Management.Automation.PSObject, System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]</T>
      <T>System.Object</T>
    </TN>
    <LST>
      <Obj RefId="1">

.....

Si queremos replicar esta configuración mediante powershell en el mismo equipo:

Install-WindowsFeature –ConfigurationFilePath 
C:\DATOS\DeploymentConfigPlantilla.xml

O bien en otro equipo remoto:

Install-WindowsFeature –ConfigurationFilePath
C:\DATOS\PlantillaIIS.xml -ComputerName $nombreservidor

Podemos generalizar y modificar los ficheros para automatizar instalaciones en cualquier entorno Windows Server 2016

Más información: Documentación server-manager

 

Error Hyper-V Manager con la actualización KB4493441 en Windows Server 2016

Después de aplicar la actualización de Windows Server 2016 del 9 de abril KB4493441, al intentar acceder al administrador de Hyper-V aparece el siguiente error:

An error occurred while attempting to connect to server “NombreServidor”. Check that the Virtual Machine Management service is running and that you are authorized to connect to the server.

Hyper-V encountered an error trying to access an object on Computer ‘NombreServidor’ because the object was not found. The object might have been deleted. Verify that the Virtual Machine Management service on the computer is running.

Para solucionarlo deberemos ejecutar, con permisos de administrador, el siguiente comando:

MOFCOMP %SYSTEMROOT%\System32\WindowsVirtualization.V2.mof

Documentación Managed Object Format MOFCOMP