A Windows VPS needs backups just like a Linux server: application data, databases, configuration, and ideally a way to rebuild the whole system. Windows includes Windows Server Backup (wbadmin) for system and volume backups. For off-site copies, add a file-level backup tool. Here’s a practical setup.

What to back up

Data Method
Application data, websites, documents File-level backup
SQL Server databases Native BACKUP DATABASE to files, then copy them off-site
MySQL/PostgreSQL on Windows mysqldump / pg_dump, then copy
IIS configuration appcmd add backup, plus the inetpub content
Trading platform profiles, EAs Their data folders (e.g. MetaTrader’s data directory)
Whole system (bare-metal) Windows Server Backup to another volume or share

Install Windows Server Backup

Install-WindowsFeature Windows-Server-Backup -IncludeManagementTools

Then open wbadmin.msc (Windows Server Backup), or use the wbadmin command.

Back up to a network share (off the server)

A backup stored on the same disk doesn’t survive a disk failure, or a deleted server. Use a network share on another machine, for example a Windows or Samba share on a backup VPS reachable over a VPN:

wbadmin start backup -backupTarget:\\backup-host\winbackups\vps1 -include:C: -allCritical -systemState -vssFull -quiet -user:backupuser -password:*
  • -allCritical includes everything needed for bare-metal recovery.
  • -systemState includes the registry, boot files and Active Directory (on domain controllers).
  • A network share keeps only the latest backup (each run overwrites it). For version history, combine it with a file-level tool, or rotate share folders.

Schedule a daily job with Task Scheduler (running the wbadmin command), or use the “Backup Schedule” wizard when backing up to a dedicated local disk.

Keep SMB traffic private: don’t expose file sharing ports to the internet. Use a VPN between the servers. See WireGuard.

File-level, versioned, off-site: restic on Windows

restic runs natively on Windows, encrypts and deduplicates, and supports SFTP servers and S3-compatible storage:

# one-time
$env:RESTIC_REPOSITORY = "sftp:[email protected]:/home/backup/repos/win1"
$env:RESTIC_PASSWORD_FILE = "C:\backup\restic-pass.txt"
restic init

# daily (from a scheduled task)
restic backup C:\inetpub C:\Data C:\Backups\sql --use-fs-snapshot
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

--use-fs-snapshot uses VSS (Volume Shadow Copy), so open files are backed up consistently. See VPS as a backup server.

Other options: Veeam Agent for Windows (free edition available), Duplicati (web UI), or your backup provider’s agent.

SQL Server databases

Back up databases with SQL Server’s native backups. Copying .mdf files while the service runs isn’t safe:

BACKUP DATABASE [AppDb] TO DISK = N'C:\Backups\sql\AppDb.bak' WITH COMPRESSION, INIT;

Schedule it with SQL Server Agent (not available in Express edition; use Task Scheduler with sqlcmd there), then include C:\Backups\sql in your off-site backup.

IIS configuration

& $env:windir\system32\inetsrv\appcmd.exe add backup "daily-$(Get-Date -Format yyyyMMdd)"

Backups are stored in C:\Windows\System32\inetsrv\backup. Include that folder, and your site content (C:\inetpub or wherever your sites live). See install IIS.

Test restores

  • Files: restore a folder to a temporary location, and compare it.
  • Databases: restore a .bak as a new database name, and run a quick query.
  • Whole system: practise a bare-metal recovery on a test VPS. Rebuilding the OS by reinstalling (from your VPS control panel) and restoring data is often faster than image-based recovery on a VPS. See reinstall the OS.

Quick reference

Task Tool / command
Install Install-WindowsFeature Windows-Server-Backup
System backup to a share wbadmin start backup -backupTarget:\\host\share -allCritical
Versioned off-site files restic (with --use-fs-snapshot)
SQL Server BACKUP DATABASE … TO DISK
IIS config appcmd add backup

Related: backup strategy (3-2-1) and PowerShell basics.

  • Windows Server
  • Backup
  • PowerShell