Windows Server backups Backup strategies on a Windows VPS: VSS, scheduled tasks, export, and HolyCloud best practices. ~10 min read Intermediate #windows #backup #vss Windows Server backups Regular backups of your Windows VPS limit data loss from human error, ransomware, or disk failure. This guide combines native Windows tools and exports to external storage. Prerequisites Windows VPS with disk space for backup targets (dedicated volume or network path) Administrator account Off-server destination: SFTP, NAS, another VPS, or HolyCloud backup if offered on your plan A backup stored only on the same disk as the system does not protect against destruction of the entire VPS. 3-2-1 strategy (reminder) 3 copies of data 2 media types 1 copy off-site (outside the VPS datacenter) Role backup with Windows Server Backup On editions that include Windows Server Backup: Server Manager → Tools → Windows Server Backup. Scheduled backup or Backup once. Target: dedicated volume or network share (not system disk alone as sole target). PowerShell (ServerBackup module): Get-WindowsFeature Windows-Server-Backup Install-WindowsFeature Windows-Server-Backup -IncludeManagementTools Run a backup to a folder (example): wbadmin start backup -backupTarget:E: -include:C: -allCritical -quiet Check available versions: wbadmin get versions -backupTarget:E: VSS and consistent backup (databases) SQL Server and other services use VSS for consistent snapshots. For SQL, prefer BACKUP DATABASE (see SQL Server Express doc) in addition to file snapshots. vssadmin list shadows vssadmin list writers If a writer is in error, fix the related service before backing up open files. File backup with robocopy Incremental copy to a backup folder (schedulable): $Source = 'C:\inetpub\wwwroot' $Dest = 'E:\Backup\wwwroot' $Date = Get-Date -Format 'yyyy-MM-dd' robocopy $Source "$Dest\$Date" /MIR /R:2 /W:5 /XD 'C:\inetpub\wwwroot\logs' /LOG:"E:\Backup\logs\robocopy-$Date.log" /MIR mirrors the source: files deleted at source are deleted at destination — use with care. PowerShell scheduled task Script C:\Scripts\Backup-Files.ps1: $ErrorActionPreference = 'Stop' $Stamp = Get-Date -Format 'yyyyMMdd-HHmm' $Archive = "E:\Backup\archive-$Stamp.zip" Compress-Archive -Path 'C:\Data\Important' -DestinationPath $Archive -Force Get-ChildItem 'E:\Backup\archive-*.zip' | Sort-Object LastWriteTime -Descending | Select-Object -Skip 14 | Remove-Item Create the task (daily at 2 AM): $Action = New-ScheduledTaskAction -Execute 'PowerShell.exe' ` -Argument '-NoProfile -ExecutionPolicy Bypass -File C:\Scripts\Backup-Files.ps1' $Trigger = New-ScheduledTaskTrigger -Daily -At 2:00AM Register-ScheduledTask -TaskName 'HolyCloud-Nightly-Backup' -Action $Action -Trigger $Trigger ` -User 'SYSTEM' -RunLevel Highest Snapshot export from the HolyCloud client area Depending on your VPS offer: Client area → VPS → your server. Backup / Snapshot section (label may vary). Create a snapshot before major updates or SQL/IIS installation. HolyCloud snapshots capture the entire disk at the hypervisor level; they do not replace SQL .bak export for granular restore. Off-site copy (SFTP example) With WinSCP scripting or Posh-SSH: # requires Posh-SSH module: Install-Module Posh-SSH -Scope AllUsers $cred = Get-Credential 'sftp-backup' Set-SCPItem -ComputerName 'backup.example.com' -Credential $cred ` -Path 'E:\Backup\archive-20260621-0200.zip' -Destination '/incoming/' -AcceptKey Encrypt archives containing sensitive data: $Password = Read-Host -AsSecureString $Password | ConvertFrom-SecureString | Set-Content 'E:\Backup\key.xml' # Use 7-Zip AES or BitLocker on backup volume per your policy Restore | Scenario | Method | |----------|---------| | Deleted file | Restore from ZIP/robocopy | | Corrupted system | HolyCloud snapshot or wbadmin recovery | | SQL database | RESTORE DATABASE from .bak | Quarterly restore test: mount a copy on a HolyCloud test VPS. Troubleshooting | Problem | Action | |----------|--------| | wbadmin backup fails | Target disk space; VSS writer error | | robocopy code 8+ | See log; locked files | | Task does not run | Task Scheduler history; SYSTEM account | | Archive too large | Exclude logs; batch Compress-Archive | Need help? To enable automatic snapshots or increase backup storage, open a ticket with the VPS reference and desired frequency. Continue reading Previous article Windows Firewall (inbound rules) Read