⚠️ WARNING: This is for internal/lab testing only. Do NOT use in production environments.
Terraform + PowerShell automation for spinning up Windows 11 VMs on Proxmox. Zero-touch — creates the VM, boots from ISO, and sends keypresses to start the installer automatically.
- Terraform
- Proxmox VE with a Windows 11 ISO uploaded to
localstorage - PowerShell 5.1+
- Clone this repo
- Copy
terraform.tfvars.exampletoterraform.tfvarsand set your Proxmox password - Update
variables.tfwith your Proxmox URL, ISO filename, etc. - Run
terraform init
# Deploy a single VM
.\deploy.ps1
# Deploy multiple VMs
.\deploy.ps1 -Count 3
# Deploy with custom name
.\deploy.ps1 -Name "SOE-Test"
# List VMs in managed range
.\deploy.ps1 -List
# Destroy a specific VM
.\deploy.ps1 -Destroy 201
# Destroy all managed VMs
.\deploy.ps1 -DestroyAllInstead of terraform.tfvars, you can use environment variables:
| Variable | Default | Description |
|---|---|---|
PVE_URL |
https://192.168.1.210:8006 |
Proxmox API endpoint |
PVE_USER |
root@pam |
Proxmox username |
PVE_PASSWORD |
(prompt) | Proxmox password |
PVE_NODE |
pve |
Proxmox node name |
- OS: Windows 11 25H2
- CPU: 2 cores (x86-64-v2-AES)
- RAM: 8GB
- Disk: 80GB (SATA, ZFS)
- NIC: e1000, bridged (vmbr0)
- UEFI: OVMF with Secure Boot + TPM 2.0
- VM ID range: 200-299
- Terraform creates the VM with UEFI, TPM, and ISO mounted
- PowerShell starts the VM via Proxmox API
- Spacebar is spammed via
sendkeyAPI to catch the "Press any key to boot from CD" prompt - Windows answer file (on the ISO) handles the rest of the install unattended
