Hace unos meses, expliqué cómo tener un laboratorio de Microsoft Endpoint Configuration Manager (MEMCM) utilizando los Deployment Lab Kit de Microsoft.

La ventaja principal de estos kits es la rapidez de instalación (básicamente es descargar el instalador y ejecutarlo para que se despliguen y se pongan en marcha las máquinas virtuales del laboratorio). Las desventajas principales son que los productos incluidos (Windows Server, SQL Server, etc.) tienen una fecha de caducidad y que el instalador únicamente funciona con Hyper-V, el hipervisor de Microsoft.

En este post se explica cómo crear un laboratorio de Configuration Manager usando el Hydration Kit de Johan Arwidmark. Este método es mucho más flexible, ya que permiti usar versiones de los productos que no tengan caducidad y crear las máquinas virtuales en cualquier hipervisor que permita iniciarlas desde un fichero *.iso.

Requisitos

Para poder utilizar este kit es necesario disponer de:

Nota: El kit contiene un share de MDT (llamado CMLab) con diferentes Task Sequence para instalar cada una de la máquinas virtuales del laboratorio (DC01, CM01, etc.).

Servidor MDT

En este caso hemos usado una instalación de MDT, ya existente en nuestro entorno que tiene las siguientes características:

  • Máquina virtual con Windows Server 2016 Build 1607
  • MDT 8456 con Hotfix KB4564442
  • ADK for Windows 11 version 21H2 + WinPE add-on
  • Hipervisor VMware ESXi 6.7 con una red LAN 10.0.0.0/24 para las VM
  • Router pfSense que proporciona DHCP y salida a Internet mediante NAT

Hydration Kit

El Hydration Kit para Windows Server 2022, SQL Server 2019 y Configuration Manager Current Branch se puede descargar desde el repositorio de GitHub de Johan Arwidmark y su uso es bastante sencillo:

  1. Descargar el software necesario (Windows Server, SQL Server, Configuration Manager, etc.)
  2. Instalar el Hydration Kit en el share CMLab de MDT
  3. Copiar el software descargado a las ubicaciones correctas del share CMLab
  4. Crear el fichero *.iso con el Bootable Hydration Kit (MDT Offline Media)
  5. Crear y desplegar las máquinas virtuales del laboratorio en un hipervisor

Paso 1: Descargar software

Aunque la descarga de software se puede realizar desde cualquier máquina Windows (cliente o servidor), en este caso se relizará en el mismo servidor MDT para facilitar la copia al share CMLab.

El script Download-SoftwareForHydrationKit.ps1 permite descargar de forma automática todo el software mencionado en este paso, incluyendo Windows Server, SQL Server y Configuration Manager desde Microsoft Evaluation Center.

# Para utilizar versiones de evaluación
.\Download-SoftwareForHydrationKit.ps1 -HydrationKitBase "D:\HydrationKitBase"

# Para utilizar versiones con licencia
.\Download-SoftwareForHydrationKit.ps1 -HydrationKitBase "D:\HydrationKitBase" -UseEvaluation $false

El script creará una estructura de directorios bajo la carpeta indicada como parámetro del mismo (en este caso D:\HydrationKitBase):

D:\HydrationKitBase
├───Downloads           (Software y otros componentes descargados de forma automática)
├───Setup               (Componentes listos para ser añadidos al share 'CMLab')
└───Temp                (Directorio temporal)

A continuación se indica todo el software necesario para el Hydration Kit:

Nota: Para obtener el fichero *.iso de “SQL Server 2019 Standard”, si se ha descargado la versión de evaluación, hay que ejecutar el instalador web SQL2019-SSEI-Eval.exe /Action=Download /MediaPath="D:\HydrationKitBase\Downloads" /MediaType=ISO /Quiet.

Nota: Configuration Manager requiere únicamente el CU 5, pero es recomendable utilizar la última actualización disponible (CU 16 KB5011644 a fecha de publicación de este artículo).

Nota: Para descargar los pre-requisitos hay que ejecutar la aplicación SMSSETUP\BIN\X64\setupdl.exe desde los ficheros de instalación de Configuration Manager y proporcionar una carpeta para la descarga.

Nota: Hay que descargar la versión 21H2 desde Other ADK downloads. La versión 22H2, liberada en Mayo de 2022, aún no está soportada por Configuration Manager.

Nota: Para descargar el ADK standalone completo, hay que ejecutar adksetup.exe /layout "D:\HydrationKitBase\Setup\Windows ADK 11" /quiet /ceip off. Y lo mismo para el WinPE add-on, adkwinpesetup.exe /layout "D:\HydrationKitBase\Setup\Windows ADK 11 WinPE add-on" /quiet /ceip off.

Nota: Para obtener el instalador de “SQL Server 2019 Express Core” hay que ejecutar el instalador web SQL2019-SSEI-Expr.exe /Action=Download /MediaPath="D:\HydrationKitBase\Downloads" /MediaType=Core /Quiet.

Evaluación vs Licencia

El script descarga las versiones de evaluación de Windows Server, SQL Server y Configuration Manager desde Microsoft Evaluation Center.

Aunque estas versiones son completamente funcionales durante 180 días, si se quiere utilizar las versiones con licencia, será necesario descargar los ficheros *.iso desde VLSC o MSDN de forma manual y dejarlos en D:\HydrationKitBase\Downloads.

  Evaluación (script) VLSC (manual)
Windows Server 2022 WindowsServer2022_x64_en-us_Eval.iso SW_DVD9_Win_Server_STD_CORE_2022_2108.1_64Bit_English_DC_STD_MLF_X22-82986.iso
SQL Server 2019 SQLServer2019-x64-ENU.iso SW_DVD9_NTRL_SQL_Svr_Standard_Edtn_2019Dec2019_64Bit_English_OEM_VL_X22-22109.ISO
Configuration Manager CB 2023 MEM_ConfigManager_2203_Eval.exe SW_DVD5_MEM_ConfigMgrClt_ML_2203_MultiLang_ConfMgr_MLF_X23-12967.ISO

Paso 2: Instalar Hydration Kit

Pre-requisitos

Para poder usar Hydration Kit es necesario disponer de un servidor MDT 8456 con Windows ADK for Windows 11 21H2.

Los pasos necesarios para instalar MDT 8456 son los siguientes:

Nota: En este caso, no ha sido necesario realizar esta instalación porque ya se dispone de un servidor, tal como se comentó anteriormente.

  • Instalar Windows ADK for Windows 11
  • Instalar el WinPE add-on del ADK anterior
  • Instalar MDT 8456 x64
  • Instalar MDT 8456 HotFix KB4564442 (sustitución del fichero Microsoft.BDD.Utility.dll de la instalación de MDT):
$HydrationKitBase = "D:\HydrationKitBase"
$Source = "$HydrationKitBase\Setup\MDT 8456 HotFix"
$Target = "C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools"
Copy-Item -Path "$Source\x86\Microsoft.BDD.Utility.dll" -Destination "$Target\x86" -Force
Copy-Item -Path "$Source\x64\Microsoft.BDD.Utility.dll" -Destination "$Target\x64" -Force

Extracción del kit

Para poder instalar el Hydration Kit en el servidor MDT es necesario descomprimirlo y, opcionalmente, adaptarlo a nuestro entorno (cambiar las direcciones IP, el nombre del dominio, las contraseñas, etc.).

Si se ha utilizado el script Download-SoftwareForHydrationKit.ps1 para descargar el software necesario de forma automática, el Hydration Kit ya ha sido extraído en el directorio D:\HydrationKitBase\Setup\HydrationKit.

Este directorio contiene un par de scripts en PowerShell, la documentación y el directorio Source con el contenido del share que se instalará en el servidor MDT:

 Directory of D:\HydrationKitBase\Setup\HydrationKit

<DIR>          docs
         1,075 LICENSE
         7,091 New-HydrationKitSetup.ps1
         3,874 New-LabVMsForHyperV.ps1
        26,191 README.md
<DIR>          Source

Adaptación al entorno

La adaptación del Hydration Kit a un entorno concreto se puede hacer de alguna de éstas maneras:

  1. A mano siguiendo las intrucciones del artículo “Customizing the ViaMonstra Hydration Kit” de Johan Arwidmark
  2. Mediante el script CustomizeHydrationKit.ps1 de Mattias Benninge referenciado en el artículo “Customizing the Hydration kit, PowerShell style! (probado únicamente en el Hydration Kit para Windows Server 2016)
  3. A mano usando la opción Search > Find in Files... > Replace in Files de Notepad++

En este caso, se ha utilizado la opción 3 para buscar en los ficheros *.hta, *.ini, *.ps1, *.txt, *.vbs, *.wsf, *.xml del directorio D:\HydrationKitBase\Setup\HydrationKit y:

  • Reemplazar 192.168.1 por 10.0.0
    • Configure-CreateADSubnets.ps1 (1)
    • CustomSettings_CM01.ini (3)
    • CustomSettings_DC01.ini (8)
    • CustomSettings_DP01.ini (3)
    • CustomSettings_FS01.ini (3)
    • CustomSettings_MDT01.ini (3)
  • Reemplazar Pacific Standard Time por Romance Standard Time
    • CM01\Unattend.xml (1)
    • DC01\Unattend.xml (1)
    • FS01\Unattend.xml (1)
    • MDT01\Unattend.xml (1)
    • CustomSettings.ini (1)
  • Reemplazar P@ssw0rdpor una nueva contraseña y apuntarla en KeePass/Bitwarden
    • Configure-CreateADStructure.wsf (16)
    • HYDCMRSPConfig.ps1 (1)
    • CustomSettings.ini (1)
    • CustomSettings_CM01.ini (1)
    • CustomSettings_DC01.ini (1)
    • CustomSettings_FS01.ini (1)
    • CustomSettings_MDT01.ini (1)
  • Deshabilitar el grupo Install DHCP en el fichero .\Source\Hydration\Control\DC01\ts.xml
  • Comentar las opciones DHCPxxxxx en el fichero .\Source\Media\Control\CustomSettings_DC01.ini

To-Do: Adaptar el script CustomizeHydrationKit.ps1 de Mattias Benninge para que funcione con este Hydration Kit.

Instalación del kit

A continuación se instala el Hydration Kit en el servidor MDT (se necesita disponer de 50GB libres) ejecutando el script New-HydrationKitSetup.ps1 en D:\HydrationKitBase\Setup\HydrationKit desde un PowerShell con permisos de administrador:

.\New-HydrationKitSetup.ps1 -Path "C:\Shares\CMLab" -ShareName "CMLab"

Si todo funciona correctamente, se creará un Deployment Share llamado CMLab que apunta al directorio C:\Shares\CMLab\DS y un directorio C:\Shares\CMLab\ISO donde generar el fichero *.iso con el Bootable Hydration Kit (MDT Offline Media).

Paso 3: Copiar software al Hydration Kit DS

Reference WIM

Antes de copiar el software al Deployment Share, es necesario ejecutar el script Export-WindowsServer2022WIMfromISO.ps1 para obtener una imagen *.wim de Windows Server 2022 con un único índice.

Este script es una adaptación del script de Johan Arwidmark para utilizar la estructura de software descargado anteriormente.

# Para utilizar versiones de evaluación
.\Export-WindowServer2022WIMfromISO.ps1 -HydrationKitBase "D:\HydrationKitBase"

# Para utilizar versiones con licencia
$ISOName = "SW_DVD9_Win_Server_STD_CORE_2022_2108.1_64Bit_English_DC_STD_MLF_X22-82986.iso"
.\Export-WindowServer2022WIMfromISO.ps1 -HydrationKitBase "D:\HydrationKitBase" -UseEvaluation $false -ISOName $ISOName

Si todo funciona correctamente, se extraerá el índice correspondiente a la imagen Windows Server 2022 SERVERSTANDARD (Desktop Experience) a un fichero REFWS2022-001.wim en el directorio D:\HydrationKitBase\Setup\ReferenceWIM.

Además, se copiará el fichero microsoft-windows-netfx3-ondemand-package~31bf3856ad364e35~amd64~~.cab para evitar problemas con la instalación de .NET Framework 3.5 si las máquinas virtuales no tienen conexión a Internet durante la instalación.

Copiar software al DS

A continuación, se puede ejecutar el script Copy-SoftwareToHydrationKitDS.ps1 para copiar al Deployment Share en C:\Shares\CMLab\DS todo el sofware descargado anteriormente, de tal forma que que las Task Sequence estén completas y funcionen correctamente.

# Para utilizar versiones de evaluación
.\Copy-SoftwareToHydrationKitDS.ps1 -HydrationKitBase "D:\HydrationKitBase" -CMLab "C:\Shares\CMLab"

# Para utilizar versiones con licencia
$SQLISOName = "SW_DVD9_NTRL_SQL_Svr_Standard_Edtn_2019Dec2019_64Bit_English_OEM_VL_X22-22109.ISO"
$CMISOName = "SW_DVD5_MEM_ConfigMgrClt_ML_2203_MultiLang_ConfMgr_MLF_X23-12967.ISO"
.\Copy-SoftwareToHydrationKitDS.ps1 -HydrationKitBase "D:\HydrationKitBase" -CMLab "C:\Shares\CMLab" -UseEvaluation $false -SQLISOName $SQLISOName -CMISOName $CMISOName

Paso 4: Crear Bootable Hydration Kit

Para generar la MDT Offline Media que contiene el Bootable Hydration Kit hay que hacer lo siguiente:

  1. Ejecutar Deployment Workbench
  2. Expandir Deployment Shares y después Hydration Kit ConfigMgr
  3. Expandir el nodo Advanced Configuration y seleccionar el nodo Media
  4. En el panel derecho, hacer click con el botón derecho en el elemento MEDIA001 y seleccionar Update Media Content

Nota: La actualización de medios puede tardar un poco en ejecutarse, un momento perfecto para tomar un café ;-)

Cuando finalice la actualización de medios, se habrá generado un fichero HydrationCMWS2022.iso en el directorio C:\Shares\CMLab\ISO. Este fichero tendrá un tamaño entre 14-16GB (el tamaño puede variar un poco dependiendo de las versiones de software que se hayan añadido).

Paso 5: Crear y desplegar VMs

A continuación se pueden crear las máquinas virtuales en el hipervisor seleccionado (en este caso VMware ESXi) y conectarlas al fichero HydrationCMWS2022.iso generado en el paso anterior.

To-Do: Utilizar VMware PowerCLI para automatizar la creación de las máquinas virtuales en VMware ESXi.

Si el hipervisor es Hyper-V, se puede utilizar el script New-LabVMsForHyperV.ps1 del directorio D:\HydrationKitBase\Setup\HydrationKit para crear las máquinas virtuales (más información al final del artículo de Johan Arwidmark).

DC01

La primera máquina que se tiene que desplegar en este laboratorio es la DC01 que será el controlador del dominio corp.viamonstra.com.

Esta máquina virtual se creará con las siguientes características:

  • Name = DC01
  • Compatibility = ESXi 6.7 virtual machine
  • Guest OS Family = Windows
  • Guest OS Version = Microsoft Windows Server 2016 or later (64-bit)
  • Storage = datastore1
  • CPU: 2 cores / 1 socket
  • Memory: 2048 MB / Reserve all guest memory (All locked)
  • Hard Disk: 100 GB / Thin provisioned
  • Network: VLAN correspondiente a la red 10.0.0.0/24
  • Datastore ISO file: datastore1\ISOs\HydrationCMWS2022.iso

Iniciar la máquina virtual DC01. Después de arrancar desde HydrationCMWS2022.iso, y después de que WinPE se haya cargado, seleccionar la secuencia de tareas DC01.

Esperar hasta que aparezca el mensaje ‘Hydration completed…’ en la pantalla de la Final Configuration Utility for MDT. Pulsar sobre el botón Closepara dar por finalizada la instalación y configuración del la máquina.

Post-configuración

A continuación se instalan las VMware Tools para proporcionar información detallada sobre la máquina virtual y permitir las operaciones en el SO invitado (p.ej. apagado elegante, reinicio, etc.):

  • Abrir una browser console en ESXi
  • Seleccionar Guest OS > Install VMware Tools desde el menú Actions
  • Ejecutar setup64.exe desde el DVD que se ha montado automáticamente
  • Seleccionar la instalación de tipo Complete
  • Reiniciar la máquina virtual

Finalmente, se desconecta el fichero *.iso del Hydration Kit y se deja DC01 en ejecución mienstras se implementan el resto de máquinas virtuales del laboratorio.

DC01

CM01

Una vez que el controlador de dominio (DC01) está en funcionamiento, se puede implementar la máquina virtual CM01. No hay que olvidar tener DC01 en ejecución mientras se implementa CM01, ya que ésta se unirá al dominio durante la instalación.

La máquina virtual se creará con las siguientes características:

  • Name = CM01
  • Compatibility = ESXi 6.7 virtual machine
  • Guest OS Family = Windows
  • Guest OS Version = Microsoft Windows Server 2016 or later (64-bit)
  • Storage = datastore1
  • CPU: 4 cores / 1 socket
  • Memory: 16384 MB / Reserve all guest memory (All locked)
  • Hard Disk: 300 GB / Thin provisioned
  • Network: VLAN correspondiente a la red 10.0.0.0/24
  • Datastore ISO file: datastore1\ISOs\HydrationCMWS2022.iso

Iniciar la máquina virtual CM01. Después de arrancar desde HydrationCMWS2022.iso, y después de que WinPE se haya cargado, seleccionar la secuencia de tareas CM01.

El mensaje ‘Hydration completed…’ en la pantalla de la Final Configuration Utility for MDT puede tardar un buen rato en aparecer ya que esta máquina virtual es bastante pesada de instalar. Pulsar sobre el botón Close para dar por finalizada la instalación y configuración del la máquina.

Post-configuración

Después de implementar CM01, hay que asegurarse de que la máquina tenga acceso a Internet (usando el NAT del hipervisor o instalando un router virtual como el usado en este caso, pfSense).

Abrir Configuration Manager Console y acceder al área de trabajo Administration. Allí se selecciona el nodo Updates and Servicing y se pulsa el botón Chek for updates para instalar las últimas actualizaciones disponibles.

Después de aplicar todas las actualizaciones, generalmente hay que reiniciar el servidor o la consola para que se apliquen correctamente los cambios.

Nota: A fecha de este artículo, hay un HotFix Rollup (KB14244456) del 9 de Junio de 2022. Este Rollup incluye el HotFix (KB14480034) que solucionaba el problema con los registros de los clientes PKI.

A continuación se instalan las VMware Tools siguiendo los mismos pasos que en la máquina anterior y se desconecta el fichero *.iso del Hydration Kit de la máquina virtual.

CM01

MDT01, DP01 y FS01

Estas máquinas virtuales son opcionales y no son necesarias para probar la mayoría de características de MEMCM (más información al final del artículo de Johan Arwidmark):

  • MDT01: Servidor MDT
  • DP01: Distribution Point
  • FS01: File Server

Referencias

Windows Server

SQL Server

Configuration Manager