[Sharing] Modern VM Provisioning Script for PVE 9.1 (PowerShell 7) with Auto-Topology & Windows 11 Support

Sep 18, 2025
7
3
3
Hi everyone,

I’ve developed a PowerShell script designed to automate VM creation on Proxmox VE 9.1 clusters, and I’d like to share it with the community. My goal was to create a "one-stop-shop" script that follows modern best practices, especially for Windows 11 and high-performance Linux workloads.

Key Features:

  • Smart CPU Topology: Automatically analyzes the target node's physical cores/sockets to configure the best virtual topology (1 vs 2 sockets) to avoid cache latency.
  • NUMA & Hotplug Aware: Automatically enables NUMA for "Large VMs" or when RAM hotplug is requested (a technical requirement often overlooked).
  • Windows 11 Ready: Provisions UEFI (OVMF) with the latest Microsoft 2023 certificates and TPM v2.0 in qcow2 format.
  • Storage Optimized: Uses virtio-scsi-single for all drives and maps the CD-ROM to the SCSI bus instead of legacy IDE.
  • Cluster & HA Integrated: Automatically selects an active node via LRM status and enrolls the VM into HA (Started state).
  • SDN Support: Works with both classic Linux Bridges and new SDN Vnets.
Prerequisites:

  • PowerShell 7+ (cross-platform).
  • Proxmox VE 9.1+ (uses the latest API endpoints).
I am looking for feedback!I would love to hear your thoughts on:

  1. Usage reports: How does it perform in your specific environment?
  2. Improvements: Are there any features or optimizations you think are missing?
  3. Code Review: Any suggestions to make the REST API calls more efficient?
You can find the script below (or link to your GitHub repository here).

https://github.com/anastra13/ProxmoxVE-VM-Provisioner

Thanks in advance for your testing and suggestions!

Best regards,Philippe