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
, typetaskschd.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
- Name:
Step 4: Trigger on Startup
- Go to Triggers tab → New:
- Begin the task: At startup
Step 5: Add Action
- Go to Actions → New:
- 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!