Windows Server 2019 is old enough now that a lot of guides assume you're only interested in 2022 or 2025. But plenty of homelabbers and small IT shops still need it — a line-of-business app that was certified against 2019 and nothing newer, an Active Directory domain you inherited, or just the fact that you already own the license. Proxmox VE handles it fine. You just need to know where the 2019-specific gotchas are, because they're slightly different from the 2022/2025 install.

This guide walks through creating a Windows Server 2019 virtual machine on Proxmox VE from a fresh ISO, start to finish, including the two things that trip people up most: loading the storage driver during setup and getting the guest agent talking to the host afterward.

What You Will Learn

  • How to upload the Windows Server 2019 and VirtIO driver ISOs to Proxmox VE
  • Which VM settings actually matter for a Windows Server guest (and which ones you can leave alone)
  • How to get past the "no drives found" screen during Windows Setup
  • Installing the VirtIO drivers and QEMU Guest Agent after Windows is up
  • What to do when the agent won't report an IP, or the VM boots to a black screen

What Is This Feature?

A virtual machine (VM) in Proxmox VE is a full, isolated copy of an operating system running on top of your physical server, using KVM (the Linux kernel's built-in virtualization technology) for hardware-level performance. Unlike an LXC container, which shares the host's Linux kernel, a VM has its own kernel entirely — which is exactly why Windows has to run as a VM rather than a container.

Windows Server 2019 is Microsoft's server operating system release from 2018, sitting between Server 2016 and Server 2022. It's still under Microsoft's Extended Support window, which matters more than it sounds — it means you still get security patches, just not new features. Mainstream support ended back in January 2024, but extended support runs until January 2029.

To make a VM this fast, Proxmox uses paravirtualized VirtIO drivers instead of emulating generic hardware. Windows doesn't know how to talk to VirtIO devices out of the box, so you have to hand it a driver disk during setup. That one extra step is the whole reason this guide exists.

Why Would You Use It?

Realistically, you're probably here for one of these reasons:

  • You have an app that's only certified for Server 2019. Some vendor software — accounting packages, industrial control panels, older SQL Server versions — never got recertified for anything newer.
  • You're running (or learning) Active Directory and want a domain controller that matches what you'll actually see at work.
  • You already have a license. No point buying a 2022 license if your Server 2019 key is sitting unused.
  • You want a smaller footprint. Server 2019 Core, in particular, is lighter than a modern Desktop Experience install if all you need is a file server or a DC.

Whatever the reason, Proxmox is a solid place to run it. Snapshots make testing patches painless, and you're not tying up a physical box for something that idles at 2% CPU most of the day.

Prerequisites

Before you start, make sure you have:

  • Proxmox VE 8.x or 9.x installed and reachable at its web UI (typically https://your-host-ip:8006)
  • A Windows Server 2019 ISO — either a licensed copy from Microsoft's Volume Licensing Center or the free 180-day evaluation ISO from Microsoft's evaluation center
  • The VirtIO driver ISO, downloaded from the Fedora-hosted virtio-win project (search "virtio-win direct downloads" — grab the stable release, not the "latest" build, unless you enjoy troubleshooting)
  • At least 32 GB of free storage, 2 CPU cores, and 4 GB of RAM to spare for the VM
  • Admin access to the Proxmox web interface

Skip the evaluation ISO if you're planning to keep this VM long-term — it activates for 180 days and then starts shutting down periodically until you either license it or rebuild.

Step-by-Step Tutorial

Step 1: Upload both ISOs

In the Proxmox web UI, click your storage (usually local) in the left-hand tree, open the ISO Images tab, and click Upload. Do this twice — once for the Windows Server 2019 ISO, once for the VirtIO driver ISO. On a typical home connection the Windows ISO (around 5 GB) is the slow part; the VirtIO ISO is under 700 MB and finishes in seconds.

Step 2: Start the VM wizard

Click Create VM in the top-right corner. On the General tab, give it a VM ID (Proxmox picks the next free number by default — leave it unless you have a numbering scheme) and a name like win2019-dc or whatever describes its job.

Step 3: OS tab

Select your uploaded Windows Server 2019 ISO from the storage dropdown. For Guest OS, choose Microsoft Windows as the type and 10/2016/2019 as the version. That version selector isn't just cosmetic — it changes some of the default hardware Proxmox presents to the guest, and picking the wrong one occasionally causes odd driver mismatches.

Step 4: System tab

This is where most beginners either skip settings that matter or fiddle with settings that don't. Set:

SettingRecommended valueWhy
Machineq35Newer, better PCIe emulation; matches what Microsoft tests against
BIOSOVMF (UEFI)Faster boot, required if you ever want Secure Boot later
SCSI ControllerVirtIO SCSI singleBest disk performance, one thread per disk
Qemu AgentCheckedLets Proxmox see the VM's IP and shut it down cleanly

If you pick OVMF, Proxmox will ask you to add an EFI disk — just accept the default storage and size (128 KB is plenty, it's tiny). You can stick with SeaBIOS instead if you want a simpler setup with no EFI disk, but you'll lose Secure Boot as an option down the road.

Step 5: Disks tab

Bus/Device should already default to SCSI because of your controller choice in Step 4. Set the disk size — 60 GB is a comfortable starting point for a Desktop Experience install with room to grow; Server Core can get by on 32 GB. Under advanced options, enable Discard (so deleted files actually free up space on thin-provisioned storage) and tick IO thread. For Cache, Write back gives noticeably better performance, but only use it if your storage is backed by a UPS or your Proxmox host has reliable power — a sudden power loss with write-back caching can lose in-flight writes.

Step 6: CPU and Memory

Set at least 2 cores. For CPU type, host gives the best performance by exposing your physical CPU's full feature set to the guest — use it if this VM will only ever run on this one node. If you're in a cluster with mixed CPU generations and might live-migrate this VM later, pick x86-64-v2-AES instead for compatibility. Memory: 4096 MB minimum for a Desktop Experience install, though Server Core will run acceptably on 2048 MB. Leave ballooning enabled for now — you can revisit it later if you're running something memory-sensitive like SQL Server.

Step 7: Network

Model should be VirtIO (paravirtualized), bridge vmbr0 (or whichever bridge your VMs normally land on). Firewall checkbox is optional — leave it off for now unless you already have Proxmox firewall rules planned.

Step 8: Confirm and attach the driver ISO

On the Confirm tab, review the summary, uncheck Start after created, and click Finish. Before booting, select the new VM, go to Hardware, click Add → CD/DVD Drive, and attach the VirtIO ISO as a second optical drive. This is the step people forget, and it's the reason Windows Setup won't see your disk in a minute.

Step 9: Boot and run Windows Setup

Start the VM and open its console. Windows Setup will ask for language and keyboard, then hit Install now. Pick your edition — Standard/Datacenter (Desktop Experience) if you want a GUI, or the Core edition without "(Desktop Experience)" in the name if you're comfortable managing it remotely. Accept the license terms, then choose Custom: Install Windows only (advanced).

Here's the part that stalls first-timers: the disk list will be empty. Click Load driver, then Browse, and navigate to your VirtIO CD drive at vioscsi\2k19\amd64. Select it, click OK, and your 60 GB disk will appear. Select it and click Next to start copying files — this takes roughly 10–15 minutes depending on your storage.

Step 10: First boot and driver install

After the reboot cycles finish, set your Administrator password and log in. Open File Explorer, find the VirtIO CD drive, and run virtio-win-gt-x64.msi. This installs the network adapter driver, balloon driver, and a handful of others in one shot — check the box for QEMU Guest Agent in the installer if it's offered, which saves you a separate install.

If the guest agent wasn't bundled in your MSI version, run it separately from guest-agent\qemu-ga-x86_64.msi on the same disc.

Step 11: Clean up and reboot

Eject both the Windows ISO and VirtIO ISO from the VM's Hardware tab (right-click each CD/DVD drive → Remove, or just detach the ISO), then reboot the guest one more time. Back in the Proxmox Summary tab for this VM, you should now see an IP address listed — that confirms the guest agent is running and talking to the host.

Commands Explained

You did most of this through the web UI, but a few command-line equivalents are worth knowing if you ever manage this VM over SSH:

  • qm status 105 — shows whether VM 105 is running, stopped, or paused
  • qm agent 105 ping — checks whether the QEMU Guest Agent inside the VM is responding; if this hangs, the agent service isn't installed or isn't running yet
  • qm set 105 --agent enabled=1 — turns on guest agent support after the fact, in case you forgot to check the box in Step 4
  • qm shutdown 105 — sends a clean ACPI shutdown request instead of a hard power-off, which only works properly once the guest agent is installed

Replace 105 with your actual VMID, which you can find in the left-hand tree or by running qm list.

Common Errors

"We couldn't find any drives. To get a storage driver, click Load driver." — This is expected, not a failure. It just means Windows Setup doesn't have a VirtIO SCSI driver loaded yet. Go back to Step 9 and point it at the driver ISO.

Black screen after clicking the console. — Usually a display type mismatch, or you just need to give it a few extra seconds on first boot. Try switching the Display device (under Hardware) to Default or VirtIO-GPU if SPICE isn't rendering.

No network inside the guest. — The NetKVM driver from the VirtIO package didn't get installed, or the VM is attached to the wrong bridge. Check Device Manager inside Windows for an "Ethernet Controller" with a yellow warning icon.

Guest agent shows no IP in the Summary tab. — Either the QEMU Guest Agent service isn't running (check services.msc for "QEMU Guest Agent"), or you forgot to enable the Qemu Agent checkbox on the VM's Options tab.

Troubleshooting

If Windows Setup still won't find the driver after loading it, double-check you browsed to 2k19 and not 2k22 or w10 — the folder names are version-specific, and picking the wrong one silently fails to list any compatible driver.

If the VM boots painfully slowly, check your Cache setting on the disk. No cache is the safest option but noticeably slower on spinning disks; switching to Write back (Step 5) usually fixes sluggish boots, especially on HDD-backed storage.

If qm agent ping times out even though the service shows as running in Windows, restart the QEMU Guest Agent service manually, and confirm the VM's Options tab actually has QEMU Guest Agent set to Enabled — this setting doesn't retroactively apply to an already-running VM without a reboot.

If activation fails after using the evaluation ISO, that's expected — evaluation media only accepts evaluation product keys. You'll need to either reinstall with a retail/volume ISO or use the built-in edition-upgrade path with a valid license key via DISM /Online /Set-Edition.

Best Practices

Take a snapshot before installing Windows Updates. Server 2019 cumulative updates occasionally break things, and a snapshot rollback takes thirty seconds compared to a full restore from backup.

Don't leave the evaluation ISO running past its 180-day window in anything other than a lab. It'll start forcing periodic reboots and eventually shut itself down, which is a bad surprise for a production VM.

Set up a backup job through Proxmox's built-in vzdump scheduler rather than relying on snapshots alone — snapshots live on the same storage as the VM and won't save you from a disk failure.

Keep the VirtIO drivers reasonably current, but don't blindly grab "latest" every time. Stick to a version you've tested, and check the virtio-win release notes before upgrading a production VM.

If this is going to be a domain controller, give it a static IP through Windows itself rather than DHCP reservations — DCs are one of the few roles where you really don't want an IP to change unexpectedly.

Frequently Asked Questions

Is Windows Server 2019 still supported?
Yes, under Microsoft's Extended Support, until January 9, 2029. You'll keep getting security patches but no new features.

Do I need TPM 2.0 for this VM?
No. Unlike Windows 11 or Server 2025, Server 2019 doesn't require a virtual TPM device to install or run.

Can I convert this VM into a template later?
Yes — right-click the VM in the Proxmox tree and choose Convert to template once you've generalized it with sysprep. That lets you clone new Server 2019 VMs in seconds instead of repeating this whole guide.

Does Server Core save meaningful resources compared to Desktop Experience?
Some, mostly in disk footprint and patching surface. RAM savings are smaller than people expect — plan for 2 GB either way as a practical minimum.

Can I live-migrate this VM to another node later?
Yes, as long as both nodes are in the same cluster and you picked a CPU type compatible with both (see Step 6).

Conclusion

Windows Server 2019 on Proxmox VE isn't complicated once you know the two sticking points: loading the VirtIO storage driver during setup, and finishing the driver/agent install afterward so Proxmox can actually see and manage the VM properly. Everything else is the same VM wizard you'd use for any other guest OS. From here, it's worth setting up scheduled backups and, if you're building a domain controller, joining it to your network before you put anything important on it.