Using Windows on KVM VPS Plans: Setup Guide

Using Windows on KVM plans? Deploy from Virtualizor or an ISO, finish setup in VNC, install VirtIO drivers, enable RDP, and secure your VPS.
A glowing Windows-style desktop panel connects to a virtualized server through a secure blue network link.

Using Windows on KVM plans lets you deploy a Windows VPS, complete its first boot from a browser console, and manage it over Remote Desktop. The setup usually takes about 15 minutes when a Windows template is available, or longer when you install from an ISO.

Prerequisites

  • A VPSLake KVM service with enough RAM, disk, and CPU for your chosen Windows edition and workload; a graphical Windows installation needs more headroom than a minimal server role.
  • Client-area access at https://my.vpslake.com, the VPS public IPv4 address, and access to the service’s VPS Control Panel (Virtualizor).
  • A Windows template offered for your service, or a licensed Windows ISO and product key if you will install manually. Use only a license you are entitled to use.
  • Browser access to the Virtualizor VNC/console and a separate computer with an RDP client. Keep the console available until the first remote login succeeds.
  • Local administrator credentials for the Windows guest. For a Windows VPS with administrator access, see VPSLake Windows RDP hosting.

Step 1: Open Virtualizor and record the recovery details

The browser console is your out-of-band access, so collect the address and keep it available before changing the operating system.

  1. Sign in to https://my.vpslake.com and open Services → My Services.
  2. Select the KVM service, choose Manage, and open VPS Control Panel to launch Virtualizor.
  3. Record the public IP, current disk contents, and any DNS or application details you need. A reinstall can erase the virtual disk.
  4. In Virtualizor, open Manage → VNC and confirm that the browser console launches. Do not close this recovery path after Windows is installed.

If the control-panel link or VNC action is missing, open a client-area ticket before starting. Do not reboot while a reinstall task is running.

Step 2: Deploy a Windows template

A provider template is the quickest route because the image and its virtual hardware drivers are prepared together.

  1. In Virtualizor, open Manage → Reinstall.
  2. Select the Windows image that matches your license and application requirements. Choose a graphical desktop option when you need local Windows tools; choose Server Core only when you are prepared to administer it without the full desktop.
  3. Read the erase warning, confirm the reinstall, and wait for the task to report completion before opening VNC.
  4. Open Manage → VNC. Complete the regional setup, accept the license terms, and create a strong local Administrator password. Do not reuse your client-area password.
  5. Once the desktop appears, open Settings → System → About or Server Manager → Local Server and confirm that the installed edition is the one you selected.

The VPS may be offline while the image is written. Finish the first-boot wizard in VNC before troubleshooting RDP.

Step 3: Install Windows from an ISO when no template is available

An ISO install gives you control over the edition, but the virtual disk and network adapter may need drivers before Windows can use them.

  1. In Virtualizor, open the service’s CD-ROM/ISO or Media screen and mount the Windows ISO. If a VirtIO driver ISO is available in the media list, attach it as a second CD-ROM.
  2. Power off the VPS from Power Control, set the boot device to the CD-ROM, and power it on.
  3. Immediately open Manage → VNC. When the console asks whether to boot from the CD/DVD, press a key inside the VNC window.
  4. Follow Windows Setup. If no disk is listed, choose Load driver, browse the attached VirtIO ISO, and select the amd64 storage-driver folder that matches the Windows release. Continue only after the installer shows the VPS disk.
  5. Select the unallocated VPS disk, let Setup create its required partitions, and allow the guest to reboot. Remove the ISO or restore the disk-first boot order after Setup no longer needs the media.

If the panel does not provide a driver ISO, use the VirtIO Windows guest-driver repository, attach the ISO through the panel, and select the matching signed driver. Never switch the virtual disk controller without its driver installed.

Step 4: Install and check VirtIO drivers

VirtIO drivers let Windows use the KVM storage and network devices directly instead of relying on slower emulated hardware.

After Windows reaches the desktop, attach the VirtIO ISO if it is not already mounted. If it contains virtio-win-guest-tools.exe, run it as Administrator and install the drivers appropriate for the Windows version. Otherwise, update each missing device from Device Manager → Other devices → [device] → Update driver → Browse my computer for drivers, selecting the mounted ISO and enabling Include subfolders.

Restart Windows after the driver installation. Then open an elevated PowerShell window and run:

Get-NetAdapter | Format-Table Name,Status,LinkSpeed
Get-Disk | Format-Table Number,FriendlyName,OperationalStatus,Size

Healthy output contains an enabled network adapter and an online system disk:

Name       Status LinkSpeed
----       ------ ---------
Ethernet   Up     1 Gbps

Number FriendlyName       OperationalStatus Size
------ ------------       ----------------- ----
0      VirtIO Block Device Online          60 GB

Names vary by release; confirm network connectivity and no yellow warning icon for storage or networking in Device Manager.

Step 5: Enable RDP and allow only the required service

RDP is commonly disabled on a fresh Windows installation, and the Windows Firewall must allow the listener before an external client can connect.

From Windows PowerShell → Run as administrator in VNC, run:

$TerminalServerKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server'
Set-ItemProperty -Path $TerminalServerKey -Name fDenyTSConnections -Value 0
Set-Service -Name TermService -StartupType Automatic
Start-Service -Name TermService
Enable-NetFirewallRule -DisplayGroup 'Remote Desktop'
Get-ItemProperty -Path $TerminalServerKey -Name fDenyTSConnections
Get-Service -Name TermService | Select-Object Name,Status,StartType

The setting should be 0, and TermService should be Running with an Automatic start type:

fDenyTSConnections : 0
Name        Status  StartType
----        ------  ---------
TermService Running Automatic

The default RDP endpoint is TCP 3389. Microsoft documents the supported GUI and PowerShell methods in its Remote Desktop allow-access guide. On a non-English Windows installation, enable the rules manually at Windows Defender Firewall with Advanced Security → Inbound Rules → Remote Desktop if the English display-group name is not found.

Step 6: Activate, update, and create a safer daily login

Activation, updates, and a separate daily account make the fresh installation safer to operate.

  1. Open Settings → System → Activation and activate with the license supplied for the service or your valid product key. If the VPS uses a provider-managed license, follow the activation instructions in the client area instead of entering a personal key.
  2. Open Settings → Windows Update and install available updates. Reboot when Windows requests it, then reconnect through VNC if RDP is temporarily unavailable.
  3. Create a named administrator account under Settings → Accounts → Other users → Add account. Use the built-in Administrator account only when required.
  4. Restrict the Remote Desktop firewall rule to a trusted source: open Windows Defender Firewall with Advanced Security → Inbound Rules → Remote Desktop → Properties → Scope, then add TRUSTED_IP_OR_CIDR under Remote IP addresses.

Verify the Windows KVM VPS

Check the guest locally, then test the public RDP path from another computer. In elevated PowerShell, run:

Get-ComputerInfo -Property WindowsProductName,WindowsVersion,OsBuildNumber
Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.IPAddress -notlike '169.254.*'} | Select-Object IPAddress,InterfaceAlias
Get-NetTCPConnection -LocalPort 3389 -State Listen | Select-Object LocalAddress,LocalPort,State
cscript.exe $env:SystemRoot\System32\slmgr.vbs /xpr

You should see the expected product, a non-link-local IPv4 address, a Listen row for port 3389, and an activation dialog or message indicating the license status. From a separate Windows computer, test the public address:

Test-NetConnection -ComputerName SERVER_IP -Port 3389

Replace SERVER_IP with the public address. Success includes:

ComputerName     : SERVER_IP
RemotePort       : 3389
TcpTestSucceeded : True

Now open Remote Desktop Connection, enter SERVER_IP, and sign in with the Windows account you configured. Keep VNC open until the desktop loads through RDP.

Troubleshooting

Windows Setup shows no disk

The installer cannot see a VirtIO storage controller without its driver. Mount the VirtIO ISO, choose Load driver in the disk-selection screen, select the matching amd64 storage driver, and rescan. If you cannot attach a driver ISO, ask VPSLake support which media is available for the service rather than changing controller settings at random.

Windows has no network adapter after installation

The NetKVM driver is missing or the virtual adapter is not attached. Install the signed network driver from the VirtIO ISO through Device Manager, reboot, and check Virtualizor → Network for the service’s assigned interface or IP settings.

TcpTestSucceeded : False

Confirm the listener and active-profile firewall rules first. If both pass, inspect any provider-side firewall rule for TCP 3389 and verify SERVER_IP is current.

RDP reaches the server but rejects the login

The account may have the wrong password, be disabled, or be using a client edition that does not provide an incoming RDP host. Sign in through VNC, reset the password locally, confirm the edition under Settings → System → About, and use the exact local account name. Do not disable Network Level Authentication as a permanent fix.

FAQ

Can I use any Windows ISO on a KVM VPS?

Use an ISO that matches the architecture and edition you are licensed to run, and confirm that the service supports customer-supplied media. A template is simpler because its storage and network drivers are normally prepared for the virtual hardware.

Why do I need VNC if I plan to use RDP?

VNC works before Windows networking and RDP are configured, so it is the recovery path for installation, password setup, driver repair, and firewall mistakes. Keep it available until an external RDP login has succeeded.

Is VirtIO required for Windows on KVM?

Windows can sometimes boot with emulated IDE or network hardware, but a VirtIO-backed configuration needs the correct guest drivers. If Windows cannot see the disk or network adapter, load the matching VirtIO storage or NetKVM driver before troubleshooting RDP.

Does changing the RDP port make Windows secure?

Changing the port can reduce basic scanning but does not replace strong credentials, updates, Network Level Authentication, or source-IP restrictions. If you change it later, update the Windows Firewall rule and test the new address before closing your existing session.

Samrat Ghosh
Written by

Samrat Ghosh

Founder & Infrastructure Engineer

Samrat Ghosh is the founder of VPSLake, where he builds and runs the remote desktop and VPS hosting infrastructure the company is built on. He writes hands-on guides about RDP, Windows Server, VPS management and secure remote access - the practical documentation he wishes had…

Previous Article

Windows 10 RDP vs Windows Server RDP: Which Is Better?

Next Article

Best Cheap RDP Under $10 a Month in 2026

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨