Automatiza el encendido de tu máquina virtual con PowerShell

Servidor con máquinas virtuales holográficas y PowerShell. Automatiza el encendido de tu máquina virtual con PowerShell.

WINDOWS · GUÍAS Y AUTOMATIZACIÓN

Tu máquina virtual puede estar lista a la hora que la necesitas. Con PowerShell y el Programador de tareas de Windows puedes iniciar VMware Workstation automáticamente cada día. En esta guía de Solutecstore configuramos el encendido de una máquina virtual a las 15:45, usando la sesión de Windows del usuario y sin escribir una contraseña en el script.

Guía preparada el 14 de octubre de 2026. La portada es una ilustración conceptual; no es una captura de VMware.

Antes de comenzar: qué necesitas

  • Un equipo con Windows y VMware Workstation instalado.
  • Una máquina virtual que puedas iniciar normalmente desde VMware.
  • La ruta del programa vmware.exe y del archivo .vmx de la máquina.
  • El equipo físico encendido, activo y con la misma sesión de Windows iniciada a la hora programada. La sesión puede estar bloqueada.

1. Comprueba primero el inicio desde PowerShell

Abre PowerShell en el equipo físico, desde la cuenta que utilizará VMware. Con la máquina virtual apagada, prueba este comando después de adaptar sus rutas:

& 'C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe' -x 'C:\Users\Adrian Idrovo\Documents\Virtual Machines\Windows 11 x64\Windows 11 x64.vmx'

El parámetro -x inicia la máquina al abrirla en VMware Workstation. Si arranca correctamente y no solicita datos adicionales, puedes continuar. Esta comprobación valida el inicio manual; después comprobaremos la tarea programada.

2. Adapta las rutas y el horario

En el script encontrarás una ruta de ejemplo real bajo C:\Users\Adrian Idrovo. Reemplázala por la ruta de tu propio archivo .vmx. Ajusta también la ubicación de VMware si lo instalaste en otra carpeta. Puedes encontrar la carpeta de la máquina desde su menú contextual en la biblioteca de VMware.

La línea New-ScheduledTaskTrigger -Daily -At '15:45' define el horario diario según el reloj y la zona horaria del Windows anfitrión.

3. Crea la tarea: script completo

Revisa las rutas y pega el bloque completo en PowerShell, en el equipo físico y con tu cuenta habitual. Este es el script utilizado en el ejemplo:

$ErrorActionPreference = 'Stop'

$vmware = 'C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe'
$vmx = 'C:\Users\Adrian Idrovo\Documents\Virtual Machines\Windows 11 x64\Windows 11 x64.vmx'

if (-not (Test-Path -LiteralPath $vmware)) {
    throw "No se encontró VMware en: $vmware"
}

if (-not (Test-Path -LiteralPath $vmx)) {
    throw "No se encontró la máquina virtual en: $vmx"
}

$accion = New-ScheduledTaskAction `
    -Execute $vmware `
    -Argument ('-x "{0}"' -f $vmx)

$horario = New-ScheduledTaskTrigger -Daily -At '15:45'

$usuario = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name

$principal = New-ScheduledTaskPrincipal `
    -UserId $usuario `
    -LogonType Interactive `
    -RunLevel Limited

$tarea = New-ScheduledTask `
    -Action $accion `
    -Trigger $horario `
    -Principal $principal

Register-ScheduledTask `
    -TaskName 'Encender Windows 11 x64' `
    -InputObject $tarea `
    -Force | Out-Null

Write-Host 'Tarea configurada: encendido diario a las 15:45.'

Get-ScheduledTaskInfo -TaskName 'Encender Windows 11 x64' |
    Select-Object NextRunTime

-LogonType Interactive utiliza una sesión ya iniciada, por lo que esta definición no guarda una contraseña de Windows. -RunLevel Limited ejecuta la tarea con privilegios normales. -Force reemplaza una tarea existente con el mismo nombre; revisa que sea la tarea que quieres actualizar.

4. Verifica la próxima ejecución y haz una prueba

El script muestra NextRunTime. Comprueba que corresponda a la próxima fecha a las 15:45; si esa hora ya pasó hoy, la siguiente ejecución será mañana.

Get-ScheduledTask -TaskName 'Encender Windows 11 x64' |
    Select-Object TaskName, State

Get-ScheduledTaskInfo -TaskName 'Encender Windows 11 x64' |
    Select-Object NextRunTime, LastRunTime, LastTaskResult

Guarda el trabajo de la máquina virtual y apágala normalmente. Para probar la tarea sin esperar al horario, ejecuta:

Start-ScheduledTask -TaskName 'Encender Windows 11 x64'

Comprueba en VMware que la máquina inicia. La existencia de la tarea o un resultado de ejecución correcto no garantizan por sí solos que Windows dentro de la máquina haya terminado de arrancar. Antes de depender de ella, verifica también una ejecución real a la hora programada.

¿Por qué vmrun pide una contraseña de cifrado?

En el caso que dio origen a esta guía, vmrun solicitaba Encrypted virtual machine password, aunque el usuario no introducía una contraseña al abrir la máquina desde VMware. La máquina tenía cifrado parcial y un TPM virtual. El comando con vmware.exe -x sí permitió iniciarla desde esa sesión.

Este método no elimina ni evita el cifrado. Su funcionamiento depende de que VMware pueda desbloquear la máquina en el contexto de tu usuario. Si aparece una solicitud de contraseña, resuélvela con el administrador de esa máquina antes de automatizar. No incluyas claves en texto plano ni elimines el TPM para intentar resolverlo.

Si la máquina no se enciende

  • No se encuentra VMware o el archivo .vmx: revisa las dos rutas del inicio del script.
  • Funciona manualmente pero no a la hora indicada: verifica que esté iniciada la misma sesión y que el equipo esté activo. Revisa la tarea en el Programador de tareas.
  • El equipo está usando batería: comprueba las condiciones de energía de la tarea; las condiciones predeterminadas pueden impedir que se ejecute.
  • La máquina está encendida pero no responde un servicio: comprueba el inicio del sistema invitado y la configuración de ese servicio.
  • Necesitas arrancar sin iniciar sesión: esta tarea interactiva no cubre ese escenario; requiere una configuración distinta para tu infraestructura.

Cambia el horario o elimina la tarea

Para cambiarla, por ejemplo, a las 08:00 de cada día:

$horario = New-ScheduledTaskTrigger -Daily -At '08:00'
Set-ScheduledTask -TaskName 'Encender Windows 11 x64' -Trigger $horario

Para quitar el encendido automático:

Unregister-ScheduledTask -TaskName 'Encender Windows 11 x64' -Confirm:$false

Una rutina menos para tu jornada

Programar el inicio de tu máquina virtual te ayuda a preparar un entorno de trabajo o de pruebas sin repetir la misma acción cada día. Adapta las rutas, verifica el inicio y comprueba el horario antes de incorporarlo a tu operación diaria.

Documentación de referencia

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Main Menu