Що і куди бекапуємо (швидкий чек-лист)
- Об’єкти: томи/файли, 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%), перевірте розклад створення/видалення тіней.