How to Start a VM Automatically on Boot with VMware Workstation

Learn how to configure your virtual machines in VMware Workstation to start automatically at system boot using Task Scheduler (Windows) or systemd (Linux).

TL;DR

Want your VMware Workstation VM to start automatically when your system boots? On Windows, use Task Scheduler. On Linux, create a systemd service. This guide walks you through both.

I know windows right ? :) yeah sometimes we gotta deal with windows too !


Why Auto-Start VMs at Boot?

Automatically starting your virtual machines is useful for:

  • Labs or dev environments
  • Home labs with pfSense or Domain Controllers
  • Servers hosted in VMs
  • Reducing manual steps after reboots

Let's cover how to do it on Windows and Linux.


🔧 Prerequisites

  • VMware Workstation Pro installed
  • A VM configured and working
  • Admin/root privileges

🪟 Windows: Using Task Scheduler

Step 1: Get the VMX Path

Find the .vmx file path for your VM. Example:

C:\Users\YourName\Documents\Virtual Machines\Ubuntu\Ubuntu.vmx

Step 2: Open Task Scheduler

  • Press Win + R, type taskschd.msc, press Enter.

Step 3: Create a New Task

  • Action > Create Task
  • Under General:
    • Name: Start Ubuntu VM
    • Run with highest privileges
    • Configure for: Windows 10/11

Step 4: Trigger on Startup

  • Go to Triggers tab → New:
    • Begin the task: At startup

Step 5: Add Action

  • Go to ActionsNew:
    • Action: Start a program
    • Program/script: "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"

Add arguments:

start "C:\Path\To\YourVM.vmx"

Step 6: Conditions & Settings

  • Conditions: Uncheck Start only if on AC power if needed
  • Settings: Allow task to be run on demand

Save the task. Done ✅


🐧 Linux: Using systemd

Step 1: Find vmrun

Typically located in:

/usr/bin/vmrun

Step 2: Test Command

Try this in terminal to start the VM:

vmrun start /home/youruser/vms/Ubuntu/Ubuntu.vmx nogui

Use nogui for headless boot.

Step 3: Create systemd Service

sudo nano /etc/systemd/system/vm-auto-start.service

Paste the following:

[Unit]
Description=Auto Start VMware VM
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/vmrun start /home/youruser/vms/Ubuntu/Ubuntu.vmx nogui
ExecStop=/usr/bin/vmrun stop /home/youruser/vms/Ubuntu/Ubuntu.vmx nogui
User=youruser
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Replace youruser and .vmx path accordingly.

Step 4: Enable the Service

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable vm-auto-start.service
sudo systemctl start vm-auto-start.service

Reboot to test. Your VM should start on boot 🎉


🧠 Pro Tips

  • Use nogui to avoid starting the full VMware GUI on boot
  • Combine with snapshot restore if you want stateless VMs
  • Use shutdown triggers to gracefully stop VMs

✅ Conclusion

Whether you're running a lab, development server, or essential service, boot-time VM startup ensures your virtual machines are ready whenever your system is.

If you found this helpful, consider sharing or subscribing to our blog!