Compartir a través de


Preparación de un VHD de Windows para Test Base

Importante

Test Base para Microsoft 365 pasará al final de su vida útil (EOL) el 31 de mayo de 2024. Estamos comprometidos a trabajar estrechamente con cada cliente para proporcionar soporte y orientación para que la transición sea lo más fluida posible. Si tiene alguna pregunta, inquietud o necesita ayuda, envíe una solicitud de soporte técnico.

Antes de cargar una máquina virtual (VM) Windows desde el entorno local a Test Base, primero debe preparar el disco duro virtual (VHD). Test Base solo admite máquinas virtuales de generación 2 que usan el formato de archivo VHD y tienen un disco de tamaño fijo. El tamaño máximo del VHD del sistema operativo en una máquina virtual de generación 2 es de 128 GiB en la base de pruebas.

Test Base admite estas versiones de Windows:

  • Windows 10 21H2 o posterior
  • Windows 11 21H2 o posterior
  • Windows Server 2016 o posterior

Puede convertir un archivo VHDX en VHD o convertir un disco de expansión dinámica en un disco de tamaño fijo, pero no puede cambiar la generación de una máquina virtual. Debe habilitar las características de Hyper-V en el host para las operaciones relacionadas con vhd.

No se puede reducir el tamaño físico de un VHD. Si el tamaño total de los volúmenes del disco duro virtual supera el tamaño máximo de VHD del sistema operativo (128 GiB) en Test Base, debe volver a crear la máquina virtual en un VHD más pequeño o reducir los volúmenes de la máquina virtual antes de convertirlos en VHD.

Debe seguir los pasos de configuración siguientes para asegurarse de que el VHD de la máquina virtual es compatible con Test Base.

Paso 1: Ejecutar el script deAzureConfig.ps1 para facilitar la configuración

Para facilitar los pasos de configuración, hemos preparado un script de configuración, puede descargar AzureConfig.ps1 y ejecutar el script como administrador en PowerShell en la máquina virtual. Es posible que tenga que configurar la directiva de ejecución de PowerShell antes de ejecutar el script. Ejecute Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser para omitir las comprobaciones de firma del usuario actual.

Una vez finalizado el script, reinicie el equipo. ChkDsk se ejecutará durante el arranque del sistema. Asegúrese de que el informe muestra un disco limpio y correcto. Step-SetLocalPolicy establecerá la directiva local para deshabilitar el aviso legal y permitir el almacenamiento de contraseñas y credenciales para la autenticación de red.

Paso 2: Instalar actualizaciones de Windows

Para evitar un reinicio accidental durante el aprovisionamiento de máquinas virtuales, se recomienda instalar todas las actualizaciones de Windows y reiniciar la máquina virtual antes de migrarla a Test Base.

Si también necesita generalizar el sistema operativo (Sysprep), debe actualizar Windows y reiniciar la máquina virtual antes de ejecutar el comando Sysprep.

Paso 3: Decidir cuándo usar Sysprep

Herramienta de preparación del sistema (sysprep.exe) es un proceso que restablece una instalación de Windows. Sysprep quita todos los datos personales y restablece varios componentes.

Normalmente se ejecuta sysprep.exe para crear una plantilla que puede usar para implementar otras máquinas virtuales con una configuración específica. La plantilla se denomina imagen generalizada.

Si solo desea crear una máquina virtual desde un disco, no es necesario usar Sysprep. En su lugar, puede crear la máquina virtual a partir de una imagen especializada .

Tenga en cuenta que Sysprep requiere que las unidades se descifren completamente antes de ejecutarse. Si ha habilitado el cifrado en la máquina virtual, deshabilíelo antes de ejecutar Sysprep. El AzureConfig.ps1 script debe deshabilitar BitLocker para todos los volúmenes.

Generalización de un disco duro virtual

Siga estos pasos para generalizar un VHD de máquina virtual. Después de estos pasos, apague la máquina virtual y no vuelva a activarla hasta que termine de cargar el VHD.

  1. Inicie sesión en la máquina virtual Windows.

  2. Ejecute PowerShell como administrador.

  3. Elimine el directorio panther (C:\Windows\Panther).

  4. Cambie el directorio a $env:windir\System32\sysprep. A continuación, ejecute sysprep.exe.

  5. En el cuadro de diálogo Herramienta de preparación del sistema , seleccione Escribir experiencia de sistema lista para usar (OOBE) y active Generalizar.

    Herramienta de preparación del sistema

  6. En Opciones de apagado, seleccione Apagar.

  7. Seleccione Aceptar.

  8. Cuando sysprep finalice, apague la máquina virtual. Si la generalización se realiza correctamente, la máquina virtual se apagará automáticamente. No use Reiniciar para apagar la máquina virtual.

También puede usar el siguiente script de PowerShell para generalizar el vhd de máquina virtual. Ejecute el script como administrador en PowerShell.

Remove-Item "$($env:windir)\Panther" -Recurse -Force

Push-Location "$($env:windir)\System32\sysprep"

.\sysprep.exe /generalize /shutdown /oobe

Pop-Location

El disco duro virtual ahora está generalizado.

Instalación del agente de máquina virtual de Azure para una imagen especializada

Para crear una máquina virtual a partir de una imagen especializada, debe instalar en Azure Virtual Machine Agent la máquina virtual.

Instale el agente de máquina virtual de Azure en la máquina virtual. Después, puede habilitar las extensiones de máquina virtual después de la instalación del agente. Las extensiones de máquina virtual proporcionan la mayor parte de la funcionalidad crítica que necesita Test Base.

También puede instalar el agente ejecutando este script de PowerShell como administrador.

$installerName = "WindowsAzureVmAgent.msi"
$installerPath = "$PWD\$installerName"
if (Test-Path $installerPath) {
    Remove-Item $installerPath -Force 
}

$installerDownloadLink = "https://go.microsoft.com/fwlink/?LinkID=394789"
Invoke-WebRequest -Uri $installerDownloadLink -OutFile $installerPath

$logPath = "$PWD\$installerName.log"
Start-Process "msiexec.exe" -ArgumentList "/i `"$installerPath`" /qn /L*v `"$logPath`"" -PassThru -Wait

Paso 4: Convertir y cambiar el tamaño del disco virtual a un VHD de tamaño fijo

Use este método para convertir y cambiar el tamaño del disco virtual para Test Base:

  1. Realice una copia de seguridad de la máquina virtual antes de iniciar el proceso de conversión o cambio de tamaño.

  2. Asegúrese de que el VHD de Windows funciona correctamente en el servidor local. Corrija los errores de la máquina virtual antes de intentar convertirla o cargarla en Test Base.

  3. Convierta el tipo de disco virtual en Fixed.

  4. Cambie el tamaño del disco virtual para cumplir los requisitos de base de prueba:

    1. Los discos de Azure deben tener un tamaño virtual alineado con 1 MiB. Si el disco duro virtual no es un múltiplo de 1 MiB, debe cambiar el tamaño del disco. Los discos que no son múltiplos de 1 MiB producen errores al crear imágenes a partir del VHD cargado. Use el cmdlet de PowerShell Get-VHD para mostrar "Size", que debe ser un múltiplo de 1 MiB en Azure, y "FileSize", que será igual a "Size" más 512 bytes para el pie de página de VHD.

      $vhd = Get-VHD -Path C:\Test\TestBaseVM.vhd
      $vhd.Size % 1MB
      0
      $vhd.FileSize - $vhd.Size
      512
      
    2. El tamaño máximo del VHD del sistema operativo en base de prueba es de 128 GiB.

Uso de PowerShell para convertir y cambiar el tamaño del disco

Puede usar los Convert-VHD cmdlets de PowerShell y Resize-VHD para convertir el disco virtual en el host de máquina virtual para Test Base. Ejecute este script de PowerShell como administrador. Reemplace por <PathToVHD> la ruta de acceso al disco duro virtual que desea cargar.

$vhdFilePath = "<PathToVHD>"
$vhdFileItem = Get-Item $vhdFilePath
$fixedSizeVHDFilePath = $vhdFileItem.Directory.FullName + "\" + $vhdFileItem.BaseName + '-Fixed.vhd'

Convert-VHD -Path $vhdFilePath -DestinationPath $fixedSizeVHDFilePath -VHDType Fixed

$fixedSizeVHD = Get-VHD -Path $fixedSizeVHDFilePath
if ((($fixedSizeVHD.Size % 1MB) -ne 0) -or (($fixedSizeVHD.FileSize - $fixedSizeVHD.Size) -ne 512)) {
    $originalSize = $fixedSizeVHD.Size
    [UInt64]$originalMB = $originalSize / 1MB
    $resizedBytes = ($originalMB + 1) * 1024 * 1024
    Resize-VHD -Path $fixedSizeVHDFilePath -SizeBytes $resizedBytes
}

Una vez finalizado el script, verá un nuevo archivo VHD con -Fixed al final de su nombre en la misma carpeta que el archivo VHD original. El nuevo archivo VHD se convierte y cambia de tamaño para que sea compatible con Test Base. Es un Fixed tipo de VHD y tiene un tamaño de alineación de 1 MiB.