Что и куда бэкапуем (быстрый чек-лист)
- Объекты: тома/файлы, System State (реестр, загрузчик и т.д.), при наличии — данные приложений (например, MSSQL делает свои дампы).
- Цель: отдельный диск VPS, NAS/файловый сервер по SMB, облачная шара. Для хранилища обязательно NTFS-права только для SYSTEM/администраторов.
- Политика: ежедневно — инкремент/полный (в зависимости от цели), еженедельно — полный, срок хранения N версий (например 14–30).
- Критерий готовности: бэкап проходит без ошибок, лог читается, тест-восстановление периодически выполнялось.
Устанавливаем компонент Windows Server Backup (WSB)
WSB — встроенный инструмент ОС, умеет System State, тома, файлы и запускается по расписанию.
Get-WindowsFeature Windows-Server-Backup
Add-WindowsFeature Windows-Server-Backup -IncludeAllSubFeature
Подготавливаем целевую папку и права
Для сетевого хранилища создайте отдельный каталог, предоставьте RW только SYSTEM, Domain Admins (или локальным администраторам) и, при необходимости, объектам компьютеров источников.
Важно: штатный мастер wbadmin.msc при резервном копировании в сетевую папку сохраняет только одну «актуальную» копию. Для многих версий используем wbadmin.exe + собственную ротацию (ниже).
Скрипт wbadmin: ежедневное резервное копирование в папки с датой
Создаем папку вида \\backup-srv\winvps01$\YYYY-MM-DD и запускаем резервное копирование. Для System State используйте -systemState, для томов — -include:C:,D:.
$Base=«\\backup-srv\winvps01$\» # замените на ваш слой/диск
$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 }
# Вариант А: System State
$cmd = «wbadmin start backup -backuptarget:$Target -systemState -noverify -vssCopy -quiet»
# Вариант Б: указанные тома (+критические)
# $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 → Create Task… → лучше запускать от SYSTEM + Run with highest privileges → настроить триггеры и действие 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 удобно включать политиками, а снимки создавать скриптом/планировщиком.
Включите службу Volume Shadow Copy (тип запуска Automatic).
Регулярно создавайте снимок (пример с vshadow.exe) и сохраняйте 10–20% диска под тени.
Список снимков: vssadmin list shadows → берем Shadow Copy 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 с Run with highest privileges; проверьте право Log on as a batch job и аргументы -ExecutionPolicy Bypass.
- Нет места под VSS. Увеличьте квоту на томе (10–20%), проверьте расписание создания/удаления теней.