Windows Server Backup and Recovery

3 Nov 2026, 18:2315 min readby ITYantra Admin

# Windows Server Backup and Recovery ## Introduction Windows Server Backup is Microsoft's built-in backup solution for Windows Server, providing backup and recovery for volumes, files, folders, sys

# Windows Server Backup and Recovery

Introduction

Windows Server Backup is Microsoft's built-in backup solution for Windows Server, providing backup and recovery for volumes, files, folders, system state, and bare metal recovery. This tutorial covers installing and configuring Windows Server Backup, creating backup schedules, performing backups, restoring data, system state recovery, bare metal recovery, and disaster recovery planning.

By the end of this guide, you will be able to implement a complete backup and recovery strategy for Windows Server.

Technical Background

Windows Server Backup Components

| Component | Description | |-----------|-------------| | Windows Server Backup (WSB) | Built-in backup feature | | wbadmin | Command-line backup tool | | System State | Registry, AD DS, SYSVOL, boot files, COM+ | | Bare Metal Recovery | Complete server recovery including OS | | VHD/VHDX | Virtual hard disk backup format |

Backup Types

| Type | Description | Speed | Storage | |------|-------------|-------|---------| | Full | All selected data | Slow | High | | Incremental | Changed since last backup | Fast | Low (VSS-based) |

Recovery Options

| Option | Description | Use Case | |--------|-------------|----------| | File Recovery | Individual files/folders | Accidental deletion | | Volume Recovery | Complete volume | Volume corruption | | System State | AD DS, registry, system files | Domain controller recovery | | Bare Metal Recovery | Complete server | Hardware failure, OS corruption |

Prerequisites

  • Windows Server 2025 installed
  • Backup storage (external disk, network share)
  • Administrator privileges
  • Sufficient storage space for retention

Architecture

Backup Architecture

Windows Server
├── C: (OS)
├── D: (Data)
└── System State (AD DS, Registry, etc.)
      │
      └── Windows Server Backup
            │
            ├── Full Backup (weekly)
            ├── Incremental Backup (daily)
            └── Backup Destination (external disk/network share)

Step-by-Step Implementation

Step 1: Install Windows Server Backup Feature

**Purpose**: Install Windows Server Backup feature.

**Commands** (PowerShell):

# Install Windows Server Backup
Install-WindowsFeature -Name Windows-Server-Backup

# Install command-line tools
Install-WindowsFeature -Name Windows-Server-Backup -IncludeAllSubFeature

# Verify installation
Get-WindowsFeature Windows-Server-Backup

**Expected output**: Windows Server Backup feature installed.

**Verification**:

Get-WindowsFeature Windows-Server-Backup | Select-Object Name, InstallState
# Shows: Installed

Step 2: Configure Backup Schedule

**Purpose**: Set up automated backup schedule.

**Commands** (PowerShell):

# Get current backup policy
Get-WBPolicy

# Create new backup policy
$policy = New-WBPolicy

# Add backup target (external disk)
$disk = Get-WBDisk | Where-Object { $_.DiskNumber -eq 1 }
Add-WBBackupTarget -Policy $policy -Target $disk

# Add schedule (daily at 2 AM)
$time = New-WBBackupTime -Time 02:00
Add-WBBackupSchedule -Policy $policy -Time $time

# Add volumes to backup
Add-WBVolume -Policy $policy -Volume (Get-WBVolume -DriveLetter C, D)

# Set system state backup
Add-WBSystemState -Policy $policy

# Apply policy
Set-WBPolicy -Policy $policy

# Verify policy
Get-WBPolicy | Select-Object PolicyState, Target, Schedule

**Expected output**: Backup policy created and scheduled.

**Verification**:

Get-WBPolicy
# Shows backup schedule and targets

Step 3: Perform Manual Backup

**Purpose**: Create an on-demand backup outside the scheduled job.

**Commands** (PowerShell):

# Perform one-time backup
Start-WBBackup -Policy (Get-WBPolicy) -BackupTarget (Get-WBDisk | Where-Object {$_.DiskNumber -eq 1})

# Monitor backup progress
Get-WBJob

# View backup history
Get-WBJob -Previous 10

**Expected output**: Backup job started and completed.

**Verification**:

Get-WBJob
# Shows job status and progress

Step 4: Recover Files and Folders

**Purpose**: Restore individual files or folders from backup.

**Commands** (PowerShell):

# Start recovery wizard (GUI)
Wbadmin start recovery -version:03/15/2024-02:00 -itemType:File -items:C:\Data\important.docx -backupTarget:E: -recoveryTarget:C:\Recovered

# Or use Windows Server Backup GUI (wbadmin.msc)

**wbadmin command examples**:

# List available backups
wbadmin get versions

# List items in backup
wbadmin get items -version:03/15/2024-02:00 -backupTarget:E:

# Recover file
wbadmin start recovery -version:03/15/2024-02:00 -itemType:File -items:C:\Data\important.docx -backupTarget:E: -recoveryTarget:C:\Recovered -quiet

# Recover volume
wbadmin start recovery -version:03/15/2024-02:00 -itemType:Volume -items:D: -backupTarget:E: -quiet

# Recover system state
wbadmin start systemstaterecovery -version:03/15/2024-02:00 -backupTarget:E: -quiet

# Bare metal recovery
wbadmin start recovery -version:03/15/2024-02:00 -backupTarget:E: -recoverVolumes:c: -quiet

**Expected output**: Files restored from backup.

**Verification**:

# Verify restored files exist
Get-ChildItem C:\Recovered\Data\

Step 5: Recover System State

**Purpose**: Restore system state (Active Directory, registry, system files).

**Commands** (PowerShell):

# Recover system state
wbadmin start systemstaterecovery -version:03/15/2024-02:00 -backupTarget:E: -quiet

# For domain controllers, use Directory Services Restore Mode (DSRM)
# 1. Restart in DSRM (press F8 during boot)
# 2. Log in as Administrator with DSRM password
# 3. Restore system state
wbadmin start systemstaterecovery -version:03/15/2024-02:00 -backupTarget:E: -quiet
# 4. Restart normally

**Expected output**: System state restored; domain controller functional.

**Verification**:

# Verify Active Directory
Get-ADDomainController

Step 6: Perform Bare Metal Recovery

**Purpose**: Recover entire server from backup (OS, data, settings).

**Prerequisites**:

  • Windows Server installation media
  • Backup destination accessible
  • Bare metal recovery backup created previously

**Procedure**:

1. Boot from Windows Server installation media 2. Select language, keyboard, time format 3. Click "Repair your computer" 4. Select "Troubleshoot" → "System Image Recovery" 5. Select operating system 6. Select backup image (latest or specific date) 7. Choose restore options (format and repartition disks) 8. Complete recovery wizard 9. Remove installation media and restart

**Expected output**: Server restored to backup state.

**Verification**:

# After reboot, verify server functionality
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion

Configuration Examples

wbadmin Backup Schedule Commands

# Create backup policy
$policy = New-WBPolicy
$target = Get-WBDisk | Where-Object { $_.DiskNumber -eq 1 }
Add-WBBackupTarget -Policy $policy -Target $target
$time = New-WBBackupTime -Time 22:00
Add-WBBackupSchedule -Policy $policy -Time $time
Add-WBVolume -Policy $policy -Volume (Get-WBVolume)
Add-WBSystemState -Policy $policy
Set-WBPolicy -Policy $policy

# Enable backup
Enable-WBBackup

wbadmin Command Reference

wbadmin start backup -backupTarget:E: -include:C:,D: -systemState -quiet
wbadmin start recovery -version:03/15/2024-02:00 -itemType:File -items:C:\Data\file.txt -backupTarget:E: -recoveryTarget:C:\Restore -quiet
wbadmin get versions -backupTarget:E:
wbadmin get items -version:03/15/2024-02:00 -backupTarget:E:
wbadmin delete backup -version:03/15/2024-02:00 -backupTarget:E: -quiet
wbadmin enable reminders
wbadmin disable reminders

PowerShell Backup Automation Script (`Backup-Server.ps1`)

#!/usr/bin/env pwsh
param(
    [string]$BackupTarget = "E:",
    [string]$LogFile = "C:\Logs\Backup.log"
)

function Write-Log {
    param([string]$Message)
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    "$timestamp - $Message" | Out-File -FilePath $LogFile -Append
}

try {
    Write-Log "Starting backup"
    
    # Create backup policy
    $policy = New-WBPolicy
    $target = Get-WBDisk | Where-Object { $_.DiskNumber -eq 1 }
    Add-WBBackupTarget -Policy $policy -Target $target
    $time = New-WBBackupTime -Time 22:00
    Add-WBBackupSchedule -Policy $policy -Time $time
    Add-WBVolume -Policy $policy -Volume (Get-WBVolume)
    Add-WBSystemState -Policy $policy
    Set-WBPolicy -Policy $policy
    
    # Start backup
    $job = Start-WBBackup -Policy $policy -BackupTarget $target
    
    # Wait for completion
    while ($job.JobState -eq 'Running') {
        Start-Sleep -Seconds 30
        $job = Get-WBJob
    }
    
    if ($job.JobState -eq 'Succeeded') {
        Write-Log "Backup completed successfully"
    } else {
        Write-Log "Backup failed: $($job.JobState)"
    }
} catch {
    Write-Log "Backup error: $_"
}

Verification

Backup Verification Commands

wbadmin get versions              -- List available backups
wbadmin get items -version:<date> -- List items in backup
Get-WBJob                         -- Current/previous jobs
Get-WBPolicy                      -- Current backup policy
Get-WBDisk                        -- Backup disks
Get-WBVolume                      -- Volumes in backup policy

Expected Results

  • Backup jobs complete successfully
  • Backup versions available for recovery
  • Files restored correctly
  • System state restored (for domain controllers)
  • Bare metal recovery boots successfully

Troubleshooting

| Symptom | Possible Cause | Diagnostic Command | Corrective Action | Verification | |---------|---------------|-------------------|-------------------|--------------| | Backup fails | Insufficient disk space | `Get-WBDisk` | Free space; add storage | Backup succeeds | | wbadmin not recognized | Feature not installed | `Get-WindowsFeature` | Install Windows Server Backup | wbadmin available | | Backup target not found | Disk not connected or offline | `Get-WBDisk` | Connect disk; bring online | Target visible | | Recovery fails | Wrong backup version | `wbadmin get versions` | Select correct version | Recovery succeeds | | System state recovery fails | Not in DSRM (for AD DS) | Event Viewer | Boot to DSRM; recover system state | AD DS functional | | Backup schedule not running | Task Scheduler disabled | `Get-WBPolicy` | Enable backup schedule | Schedule active | | VSS errors | VSS service not running | `Get-Service VSS` | Start VSS service | Backup succeeds |

Best Practices

1. **Follow 3-2-1 rule**: 3 copies, 2 media, 1 off-site. 2. **Backup system state for domain controllers**: Critical for AD DS recovery. 3. **Test restores regularly**: Verify backups are recoverable. 4. **Use separate backup storage**: Don't store backups on same disk as data. 5. **Monitor backup jobs**: Check logs and alerts for failures. 6. **Schedule off-peak backups**: Minimize impact on production. 7. **Retain multiple backup versions**: Protect against ransomware and corruption. 8. **Document recovery procedures**: Written runbooks for common scenarios. 9. **Encrypt backups**: Protect sensitive data at rest. 10. **Review retention policy**: Adjust based on compliance and storage.

Conclusion

Windows Server Backup provides native backup and recovery capabilities for Windows Server. With wbadmin and PowerShell cmdlets, administrators can schedule backups, recover files, volumes, system state, and perform bare metal recovery. Regular testing of restore procedures and maintaining off-site copies ensure data can be recovered within acceptable recovery time objectives.

References

  • Windows Server Backup Documentation (https://learn.microsoft.com/windows-server/backup/)
  • wbadmin Command Reference (https://learn.microsoft.com/windows-server/administration/windows-commands/wbadmin)
  • PowerShell Backup Module (https://learn.microsoft.com/powershell/module/windowsserverbackup/)
  • Bare Metal Recovery (https://learn.microsoft.com/windows-server/backup/back-up-and-restore-of-servers-and-clusters)
#windows-server#backup#recovery#wbadmin#windows-server-backup#system-state#bare-metal-recovery#disaster-recovery