Резервное копирование Windows Server: wbadmin, Windows Server Backup и PowerShell

Server 24 марта 2026 9 мин чтения ...
ЕС
Евгений Семёнов
Генеральный директор ООО АйТи Фреш · 15+ лет в IT
Резервное копирование Windows Server — wbadmin и PowerShell

Бэкап — это не опция, это обязанность. За 15 лет я видел, как потеря данных на сервере убивала целые проекты, а восстановление без актуальной резервной копии превращалось в многодневный кошмар с непредсказуемым исходом. Windows Server предоставляет встроенный инструмент Windows Server Backup и утилиту командной строки wbadmin.exe — и, честно говоря, для большинства задач среднего бизнеса этого вполне достаточно без покупки стороннего ПО.

В этой статье — всё по делу: установка компонента Windows Server Backup, основные команды wbadmin, автоматизация через PowerShell, резервное копирование System State, томов и отдельных папок. И отдельно — процедура восстановления, которую почему-то всегда изучают уже после того, как случилась авария.

Установка Windows Server Backup

Компонент Windows Server Backup по умолчанию не установлен — это один из тех моментов, которые обнаруживают в самый неподходящий момент. Проверить наличие и установить его можно через PowerShell:

# Проверка наличия компонента
Get-WindowsFeature Windows-Server-Backup

# Установка с включением всех подкомпонентов
Install-WindowsFeature Windows-Server-Backup -IncludeAllSubFeature

После установки в меню «Средства» (Tools) диспетчера сервера появится оснастка Windows Server Backup. Помимо графической консоли wbadmin.msc, вы получаете утилиту wbadmin.exe и полный набор PowerShell-командлетов модуля WindowsServerBackup — а это уже серьёзные возможности для автоматизации.

Совет: На Server Core без графической оболочки управление бэкапами выполняется исключительно через wbadmin.exe и PowerShell. Убедитесь, что компонент установлен, прежде чем настраивать задания.

Основные команды wbadmin

Утилита wbadmin.exe — рабочая лошадка для всего, что касается резервного копирования из командной строки. Вот команды, которые используются чаще всего:

Резервное копирование тома целиком

Самый частый сценарий в нашей практике — полный бэкап системного тома на внешний или сетевой диск. Команда для резервного копирования тома C: на диск D: выглядит так:

wbadmin start backup -backupTarget:D: -include:C: -vssFull -quiet

Разберём ключевые параметры:

Для бэкапа на сетевой ресурс с авторизацией команда немного другая:

wbadmin start backup -backupTarget:\\\\fileserver\backups -include:C: -user:DOMAIN\backupuser -password:P@ssw0rd -vssFull -quiet
Важно: При использовании сетевого хранилища для бэкапа хранится только последняя версия. Для хранения нескольких версий используйте локальный диск или создавайте подпапки с датой через скрипт.

System State: что это и как сохранить

System State — это не просто «какие-то системные файлы». Это набор компонентов, без которых сервер либо не запустится, либо потеряет всю доменную инфраструктуру. Состав зависит от установленных ролей:

# Резервная копия System State на диск E:
wbadmin start systemstatebackup -backupTarget:E: -quiet

# Резервная копия System State в сетевую папку
wbadmin start systemstatebackup -backupTarget:\\\\nas01\sysstate -quiet
Совет: На контроллерах домена регулярный бэкап System State критически важен. Microsoft рекомендует выполнять его не реже, чем раз в период tombstone lifetime (по умолчанию 180 дней), но на практике лучше делать его ежедневно или хотя бы еженедельно.

Автоматизация бэкапов через PowerShell

Модуль WindowsServerBackup в PowerShell даёт гибкость, которой в графическом интерфейсе просто нет. Вот рабочий пример скрипта — создаём политику бэкапа и сразу настраиваем расписание:

# Импорт модуля
Import-Module WindowsServerBackup

# Создание новой политики бэкапа
$policy = New-WBPolicy

# Добавление системного тома
$volume = Get-WBVolume -AllVolumes | Where-Object { $_.MountPath -eq "C:" }
Add-WBVolume -Policy $policy -Volume $volume

# Добавление System State
Add-WBSystemState -Policy $policy

# Указание целевого диска
$disk = Get-WBDisk | Where-Object { $_.DiskNumber -eq 1 }
$target = New-WBBackupTarget -Disk $disk
Add-WBBackupTarget -Policy $policy -Target $target

# Установка расписания (ежедневно в 02:00)
Set-WBSchedule -Policy $policy -Schedule 02:00

# Применение политики
Set-WBPolicy -Policy $policy -Force

Если нужен более простой подход — запускайте wbadmin.exe прямо из PowerShell-скрипта с динамическим формированием пути. Мы так делаем, когда политика избыточна, а скрипт нужен «здесь и сейчас»:

# Скрипт backup_server.ps1
$path = "\\\\srvbak1\backup\srv01\"
[string]$date = Get-Date -Format 'yyyy-MM-dd'
$TargetUNC = $path + $date

# Создание папки для текущей даты
if (!(Test-Path -Path $TargetUNC)) {
    New-Item -Path $TargetUNC -ItemType Directory
}

# Запуск бэкапа
$cmd = "wbadmin.exe START BACKUP -backupTarget:$TargetUNC -systemState -noverify -vssCopy -quiet"
Invoke-Expression $cmd

# Логирование
$logFile = "C:\Logs\backup_$(Get-Date -Format 'yyyyMMdd').log"
"Backup completed at $(Get-Date)" | Out-File $logFile -Append

Настройка расписания через Task Scheduler

Чтобы скрипт запускался регулярно без вашего участия, добавьте его в планировщик задач:

# Создание триггера: вторник и пятница в 01:00
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Tuesday,Friday -At "01:00AM"

# Действие: запуск PowerShell-скрипта
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" `
    -Argument "-ExecutionPolicy Bypass -File C:\Scripts\backup_server.ps1"

# Регистрация задания от имени SYSTEM
Register-ScheduledTask -TaskName "ServerBackup_Weekly" `
    -Trigger $trigger `
    -User "NT AUTHORITY\SYSTEM" `
    -Action $action `
    -RunLevel Highest -Force
Совет: Используйте учётную запись NT AUTHORITY\SYSTEM для запуска задания — она имеет все необходимые привилегии и не зависит от смены пароля администратора.

Очистка старых резервных копий

Со временем резервные копии съедают место быстрее, чем кажется — особенно если сервер активно используется. Несколько подходов к управлению хранилищем:

# Удаление старых бэкапов, оставить последние 10 версий
wbadmin delete backup -keepVersions:10 -quiet

# Удаление конкретной версии по дате
wbadmin delete backup -version:03/20/2026-02:00 -quiet

Для сетевых хранилищ, где бэкапы складываются в папки по датам, ротацию удобнее всего делать через PowerShell:

# Удаление бэкапов старше 60 дней
$retentionDays = 60
$cutoffDate = (Get-Date).AddDays(-$retentionDays)
$backupRoot = "\\\\srvbak1\backup\srv01"

Get-ChildItem -Path $backupRoot -Directory |
    Where-Object { $_.CreationTime -lt $cutoffDate } |
    Remove-Item -Recurse -Force

Write-Host "Очистка завершена. Удалены бэкапы старше $retentionDays дней."

Восстановление из резервной копии

Восстановление — та часть, которую часто не отрабатывают заранее. А зря: в стрессовой ситуации каждая минута на счету. Начните с просмотра доступных версий:

# Список всех доступных резервных копий
wbadmin get versions

# Список бэкапов на конкретном целевом диске
wbadmin get versions -backupTarget:D:

# Просмотр содержимого конкретной версии
wbadmin get items -version:03/24/2026-02:00

Для восстановления тома или конкретных файлов:

# Восстановление тома
wbadmin start recovery -version:03/24/2026-02:00 -itemType:Volume -items:C: -recoveryTarget:D: -quiet

# Восстановление конкретной папки
wbadmin start recovery -version:03/24/2026-02:00 -itemType:File -items:"C:\Data\Projects" -recoveryTarget:D:\Restore -quiet

Восстановление System State и Active Directory

Восстановление System State на контроллере домена — отдельная история. Здесь нельзя просто запустить команду и ждать. Нужно загрузить сервер в режиме DSRM (Directory Services Restore Mode):

# Переключение в DSRM
bcdedit /set safeboot dsrepair
shutdown /r /t 0

# После перезагрузки в DSRM — восстановление System State
wbadmin start systemstaterecovery -version:03/24/2026-02:00 -quiet

# Возврат в обычный режим после восстановления
bcdedit /deletevalue safeboot
shutdown /r /t 0
Важно: По умолчанию выполняется неавторитетное восстановление (non-authoritative restore). Это означает, что после перезагрузки объекты AD будут реплицированы с других контроллеров домена. Если вам нужно восстановить удалённые объекты, потребуется авторитетное восстановление через утилиту ntdsutil.

Если после загрузки System State нужно авторитетное восстановление конкретного OU — например, случайно удалили подразделение с пользователями — делаем так:

ntdsutil
activate instance ntds
authoritative restore
restore subtree "OU=Users,DC=contoso,DC=com"
quit
quit

Мониторинг и проверка бэкапов

Бэкап, который никто не проверяет — это просто занятое место на диске. Мы в своей практике видели ситуации, когда резервное копирование «работало» месяцами, а в нужный момент оказывалось, что последний успешный бэкап был полгода назад. Вот PowerShell-скрипт для мониторинга:

# Проверка последнего бэкапа
$lastBackup = Get-WBSummary
Write-Host "Последний бэкап: $($lastBackup.LastSuccessfulBackupTime)"
Write-Host "Результат: $($lastBackup.LastBackupResultHR)"
Write-Host "Следующий запланированный: $($lastBackup.NextBackupTime)"

# Проверка на контроллерах домена — дата последнего бэкапа AD
repadmin /showbackup *

Чтобы не узнавать о сбое бэкапа случайно — когда уже что-то случилось — настройте проверку журнала событий и отправку уведомлений. Работает просто и без лишних зависимостей:

# Поиск ошибок бэкапа в журнале за последние 24 часа
Get-WinEvent -FilterHashtable @{
    LogName = 'Microsoft-Windows-Backup'
    Level = 2  # Error
    StartTime = (Get-Date).AddHours(-24)
} -ErrorAction SilentlyContinue |
    Select-Object TimeCreated, Message |
    Format-List
Совет: Логи Windows Server Backup хранятся в папке C:\Windows\Logs\WindowsServerBackup\. Периодически проверяйте их, чтобы обнаружить проблемы до того, как они станут критичными.

Bare Metal Recovery: восстановление с нуля

Bare Metal Recovery (BMR) — это полное восстановление сервера с нуля: ОС, драйверы, данные, всё. Железо можно брать другое, не обязательно один в один. Незаменимая вещь, когда материнка сгорела или дисковый массив вышел из строя. Чтобы создать BMR-бэкап:

# BMR-бэкап включает все критические тома
wbadmin start backup -backupTarget:D: -allCritical -vssFull -quiet

# Через PowerShell
$policy = New-WBPolicy
Add-WBBareMetalRecovery -Policy $policy
$target = New-WBBackupTarget -VolumePath "D:"
Add-WBBackupTarget -Policy $policy -Target $target
Set-WBPolicy -Policy $policy -Force

Для восстановления загрузитесь с установочного диска Windows Server, выберите «Восстановление системы» (Repair your computer) → «Устранение неполадок» → «Восстановление образа системы» (System Image Recovery) и укажите расположение резервной копии. Совет из практики: заранее проверьте, что диск вообще загружается и мастер видит бэкап — в 3 ночи во время аварии это не лучшее время для открытий.

Шпаргалка: основные команды

# --- УСТАНОВКА ---
Install-WindowsFeature Windows-Server-Backup -IncludeAllSubFeature

# --- РЕЗЕРВНОЕ КОПИРОВАНИЕ ---
wbadmin start backup -backupTarget:D: -include:C: -vssFull -quiet
wbadmin start systemstatebackup -backupTarget:E: -quiet
wbadmin start backup -backupTarget:D: -allCritical -vssFull -quiet

# --- ПРОСМОТР ---
wbadmin get versions
wbadmin get items -version:03/24/2026-02:00
wbadmin get status

# --- ВОССТАНОВЛЕНИЕ ---
wbadmin start recovery -version:03/24/2026-02:00 -itemType:Volume -items:C: -recoveryTarget:D:
wbadmin start systemstaterecovery -version:03/24/2026-02:00

# --- ОЧИСТКА ---
wbadmin delete backup -keepVersions:10 -quiet

# --- МОНИТОРИНГ ---
Get-WBSummary
repadmin /showbackup *

Заключение

Если честно, большинству компаний до 50 рабочих мест сторонние решения для бэкапа просто не нужны. Встроенные инструменты Windows Server — wbadmin, Windows Server Backup и PowerShell-модуль WindowsServerBackup — закрывают задачу полностью. Автоматизируйте через планировщик задач, храните копии отдельно от сервера — на сетевом ресурсе или внешнем носителе, регулярно смотрите на результаты и хотя бы раз в квартал реально проверяйте восстановление.

Контроллеры домена — отдельная история. Там бэкап System State не просто желателен, а обязателен, и выполняться он должен минимум раз в неделю. На файловых серверах и серверах приложений делайте полное резервное копирование томов с ротацией — старые копии должны удаляться по расписанию, иначе диск закончится в самый неподходящий момент. И главное: бэкап, который ни разу не тестировали на восстановление — это не бэкап, а надежда.

Официальная документация: Microsoft Learn — Windows Server, Microsoft Learn — PowerShell

Часто задаваемые вопросы

Что такое Резервное копирование Windows Server: wbadmin, Windows Server Backup и PowerShell?

Резервное копирование Windows Server: wbadmin, Windows Server Backup и PowerShell — это важный аспект системного администрирования, который позволяет настроить и оптимизировать работу IT-инфраструктуры. В данной статье подробно рассматриваются все ключевые моменты.

Как правильно настроить Резервное копирование Windows Server: wbadmin, Windows Server Backup и PowerShell?

Для корректной настройки Резервное копирование Windows Server: wbadmin, Windows Server Backup и PowerShell необходимо следовать пошаговой инструкции, представленной в статье выше. Важно учитывать особенности вашей инфраструктуры и требования безопасности.

Какие типичные ошибки возникают при работе с Резервное копирование Windows Server: wbadmin, Windows Server Backup и PowerShell?

Наиболее частые ошибки при работе с Резервное копирование Windows Server: wbadmin, Windows Server Backup и PowerShell: некорректная конфигурация, недостаточные права доступа и несовместимость версий. Рекомендуем обратиться к специалистам ITFresh для профессиональной настройки.

Нужна помощь с серверами?

ООО «АйТи Фреш» берёт ИТ на себя

Мы настроим надёжное резервное копирование ваших серверов — от ежедневных бэкапов System State и томов до полной стратегии Bare Metal Recovery. Проверка, мониторинг, ротация и тестовое восстановление — всё под ключ. Напишите нам в Telegram или позвоните, и забудьте о страхе потери данных.

15+лет опыта
25+клиентов
40Gканал сети
24/7поддержка

Комментарии