存储内容与位置(简要检查清单)
- 对象:卷/文件、系统状态(日志、启动管理器等)、应用程序数据(若可用,例如MSSQL会创建自己的转储文件)。
- 存储目标:独立VPS硬盘、通过SMB协议连接的NAS/文件服务器、云存储。存储设备仅允许系统/管理员拥有NTFS权限。
- 执行准则:每日(增量/完整备份,视目标而定),每周(完整备份),保留N个版本(例如14-30个)。
- 可用性标准:备份执行无错误,协议可读,并定期进行测试还原。
安装Windows Server备份(WSB)组件
WSB是操作系统内置工具,可处理系统状态、卷和文件,并按计划执行。
Get-WindowsFeature Windows-Server-Backup
Add-WindowsFeature Windows-Server-Backup -IncludeAllSubFeature
准备目标文件夹和权限
为网络存储创建独立目录,并仅向系统、域管理员(或本地管理员)以及必要时向源计算机对象授予读写权限。
重要提示:在网络文件夹中执行备份时,标准程序「wbadmin.msc」仅保存「当前」副本。对于多数版本,我们采用「wbadmin.exe」+ 自定义轮换机制(详见下文)。
wbadmin脚本:每日按日期备份至文件夹
创建文件夹 \\backup-srv\winvps01$\YYYY-MM-DD 并启动备份。使用 -systemState 备份系统状态,使用 -include:C:,D: 备份磁盘分区。
$Base=“\\backup-srv\winvps01$\# replace with your layer/disk
$Date=Get-Date -Format ”yyyy-MM-dd"
$Target=Join-Path $Base $Date
if (-not (Test-Path $Target)) { New-Item -ItemType Directory -Path $Target | Out-Null }
# Option A: System State
$cmd = “wbadmin start backup -backuptarget:$Target -systemState -noverify -vssCopy -quiet”
# Option B: specified volumes (+critical)
# $cmd = “wbadmin start backup -backuptarget:”+$Target+“ -include:C:,D: -allCritical -quiet”
Invoke-Expression $cmd
包含按日期分类文件夹的场景、wbadmin的执行及协议示例
Import-Module ServerManager
$string $date = get-date -f 'yyyy-MM-dd'
$path="\\\col\backup\dcl\"
$TargetUNC = "$path$date"
$TestTargetUNC = Test-Path -Path $TargetUNC
if (!($TestTargetUNC)) {
New-Item -Path $TargetUNC -ItemType directory
}
$WBadmin_cmd = "wbadmin.exe START BACKUP -backupTarget:$TargetUNC -systemState -noverify -vssCopy"
Invoke-Expression $WBadmin_cmd
记录查询路径: C:\Windows\Logs\WindowsServerBackup\*.log
在本地连接的硬盘上,您可以默认限制版本数量:
wbadmin delete backup -keepVersions:10 -quiet
程序员:脚本自动启动
通过图形用户界面(GUI)设置
taskschd.msc → 创建任务… → 建议通过系统 + 以最高权限运行启动 → 配置触发器和操作 powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\PS\Backup.ps1.
通过 PowerShell 实现的选项
$Trigger=New-ScheduledTaskTrigger -Daily -At 1:00am
$Action =New-ScheduledTaskAction -Execute "PowerShell.exe" `
-Argument "-NoProfile -ExecutionPolicy Bypass -File C:\PS\Backup.ps1"
Register-ScheduledTask -TaskName "VPS-DailyBackup" -Trigger $Trigger `
-User "NT AUTHORITY\SYSTEM" -Action $Action -RunLevel Highest -Force
一站式解决方案:
wbadmin enable backup -addtarget:E: -schedule:01:00 -include:C:,D: -quiet
使用WSB创建每日计划。语法:在Microsoft Learn中。
文件的“快速版本”:Robocopy(+每日文件夹)
对于数据目录(网站、上传文件),按日期创建文件夹快照非常实用:
@echo off
set date_=%date:/=-%
set src=D:\Data
set dst=\\backup-srv\winvps01$\%date_%
mkdir "%dst%"
robocopy "%src%" "%dst%" /E /COPYALL /Z /J /R:3 /W:1 /LOG+:C:\Logs\robocopy.log
启用VSS快照(影子副本)以实现“快速恢复”。
影子副本提供“历史版本”,可帮助您快速恢复单个文件,无需执行全面备份。在域环境中,建议通过策略启用VSS,并使用脚本/计划程序创建快照。
启用“卷影复制”服务(启动类型:自动)。
定期创建快照(例如使用vshadow.exe),并为影子副本预留10%至20%的硬盘空间。
快照列表:vssadmin list shadows → 记录影子副本的ID。
创建一个特定的快照(只读),并复制文件:
vshadow -el={GUID},Z:
VSS 和卷影副本:参见 Microsoft Learn。
检查、监控、轮换
- 恢复测试:定期挂载带日期的 VHDX/文件夹,并恢复“桌面”上的部分文件。对关键功能使用配置文件(AD、MSSQL 等)。
- 日志与返回代码:WindowsServerBackup日志、Robocopy的返回代码(掩码)。
- 轮换:按日期删除旧文件夹(PowerShell)和/或使用wbadmin delete backup -keepVersions:N。
- 规划wbadmin enable backup:配置与语法详见Microsoft帮助文档。
常见问题与解决方案
- 显示网络目标仅存储一份副本。此为WSB向导的限制。请使用wbadmin + 按日期分类文件夹(如前文脚本所示)。
- 计划程序卡死或要求输入密码。请以SYSTEM身份通过以最高权限运行执行程序;检查以批处理作业身份登录权限及-ExecutionPolicy Bypass参数。
- VSS存储空间不足。请增加卷配额(10-20%),检查快照创建/删除计划。