¿Cómo detener / eliminar una máquina virtual atascada en Hyper-V?

Si su máquina virtual que se ejecuta en Hyper-V está atascada por algún motivo, se detiene para responder y no se inicia / detiene / reinicia después de hacer clic en los botones correspondientes en la consola Hyper-V, la única forma de solucionarlo es matar a la fuerza el proceso responsable de esta máquina virtual en el sistema operativo host. Le mostraremos cómo forzar el reinicio de las máquinas virtuales Hyper-V atascadas que se ejecutan en Windows Server 2016/2019 sin reiniciar todo el host y todas las máquinas virtuales en ejecución (si no tiene un clúster Hyper-V HA y Live-Migration).

Hyper-V VM atascado en el estado «Deteniendo / Iniciando»

Suponga que una de sus máquinas virtuales Hyper-V está atascada en el Parada (Parada crítica) o A partir de Estado (x% inicial).

hyper-v vm atascado en el estado de detención

El sistema operativo invitado no responde y los botones «Apagar», «Apagar» y «Restablecer» en el Administrador de Hyper-V no están disponibles o devuelven el siguiente error cuando se presionan:

La aplicación encontró un error al intentar cambiar el estado de la VM.
No se pudo cambiar el estado.
La operación no se puede realizar mientras el objeto está en su estado actual.

La aplicación encontró un error al intentar cambiar el estado de… No se pudo cambiar el estado La operación no se puede realizar mientras el objeto está en su estado actual

Administrador de Hyper-V atascado en «Conexión al servicio de administración de máquinas virtuales»

Si su Hyper-V no muestra las máquinas virtuales en la consola del Administrador de Hyper-V y devuelve el error «Conectando al servicio de administración de la máquina virtual», debe reiniciar el vmms.exe (Servicio de administración de máquinas virtuales Hyper-V) proceso. Esta es una operación segura y no interrumpirá las VM en ejecución. La forma más sencilla de reiniciar el proceso vmms.exe es a través del servicio vmms mediante la consola services.msc o con los cmdlets de administración de servicios de PowerShell:

Get-Service vmms | Restart-Service

elegante: reiniciar-servicio vmms

¿Cómo eliminar un proceso de VM colgado en el Administrador de tareas?

La única forma de forzar el apagado y reiniciar una máquina virtual atascada sin reiniciar todo el host de Hyper-V es finalizar su flujo de trabajo en ejecución en el sistema operativo invitado. Todas las máquinas virtuales en el host de Hyper-V se inician con el vmwp.exe proceso (Proceso de trabajador de máquina virtual). Para buscar un proceso, debe averiguar el GUID de la máquina virtual.

Puede obtener el GUID de VM a través del Hyper-V Gerente consola. Abra la configuración del servidor Hyper-V. En la sección Servidor, se muestra la ubicación de los archivos de configuración de la VM (en nuestro caso es D: VMStore).

Configuración de Hyper-V

Abra este directorio en el Explorador de archivos y busque la carpeta con el mismo nombre que tiene su máquina virtual. Copie el GUID que se especifica en el nombre del archivo de configuración de VM con la extensión * .vmcx.

vm guid en el nombre del archivo

Ejecutar el Tarea Gerente y ve al Detalles pestaña. Todas las máquinas virtuales se ejecutan en su propia instancia de vmwp.exe. Para determinar qué proceso es responsable de su VM, necesita el GUID de la VM colgada que obtuvo anteriormente. Localice el proceso vmwp.exe que tiene el GUID de su VM en el Usuario nombre columna. Mata este proceso (Tarea final).

matar vm colgado en hyper-v usando el administrador de tareas

La máquina virtual se verá obligada a detenerse. Ahora puedes hacer cualquier cosa con él.

Matar una Hyper-VM congelada con PowerShell

Es mucho más fácil encontrar y finalizar el proceso de la máquina virtual colgada mediante la CLI de PowerShell. Ejecute la consola de PowerShell con privilegios de administrador (su cuenta debe agregarse al grupo local de «administradores de Hyper-V»).

En este caso, el incorporado Stop-VM cmdlet no le permitirá apagar la máquina virtual. Si intenta ejecutar el Stop-VM -Force comando, también se congela. Obviamente esperando una respuesta de la VM.

También debe eliminar el proceso de la máquina virtual mediante su GUID. Puede obtener el GUID de VM por su nombre. Por ejemplo, para obtener el GUID de la VM con el nombre SVM-GUARDEDHOST1, ejecute el comando:

$VMGUID = (Get-VM "SVM-GUARDEDHOST1").ID

Si no desea escribir el nombre completo de la máquina virtual, puede enumerar todas las máquinas virtuales registradas en este host de Hyper-V:

Get-VM | Select Name, Id

get-vm guid en powershell

Copie su GUID de VM de la lista resultante.

Busque el identificador de proceso (PID) vmwp.exe para este VMGUID:

$VMWMProc = (Get-WmiObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VMGUID})

Luego, usando el comando Stop-Process, debe forzar la terminación de este proceso:

Stop-Process ($VMWMProc.ProcessId) –Force
Matar a Hung VM en Hyper-V usando Powershell

Esta es la manera fácil de terminar forzosamente el proceso de trabajo de una máquina virtual Hyper-V colgada.

Hyper-V: no se pudo cambiar el estado de la máquina virtual

A veces sucede que incluso después de matar un proceso de VM colgado, no puede encender la VM. Además, se congela en el estado de inicio con un error:

Virtual Machine Connection
Failed to Change State.

En este caso, marque las siguientes opciones:

  • Compruebe que haya suficiente espacio libre en el disco en el que se almacenan los archivos de Hyper-V VM;
  • Si una imagen ISO está conectada en la configuración de VM, verifique su disponibilidad;
  • Verifique la configuración del adaptador de red de la VM. Los adaptadores de red virtual deben estar conectados a un conmutador virtual Hyper-V existente (no debe haber ningún estado Adaptador de red – Error de configuración para cualquier NIC);error de configuración del adaptador de red hyper-v
  • Verifique que el Servicio de administración virtual de Hyper-V (VMMS) se esté ejecutando y no se haya quedado atascado en el estado Deteniendo;
  • Asegúrese de que su software antivirus no bloquee el acceso a los archivos de la máquina virtual. Agregue rutas al directorio de VM a las exclusiones de antivirus (verifique cómo agregar exclusiones al antivirus incorporado de Windows Defender en Windows Server 2016);
  • Busque errores relacionados con Hyper-V en el Visor de eventos -> Registros de aplicaciones y servicios -> Microsoft -> Windows -> Hyper-V-Worker.

Artículos Interesantes