Резервное копирование Windows Server: wbadmin, Windows Server Backup и 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 — а это уже серьёзные возможности для автоматизации.
wbadmin.exe и PowerShell. Убедитесь, что компонент установлен, прежде чем настраивать задания.Основные команды wbadmin
Утилита wbadmin.exe — рабочая лошадка для всего, что касается резервного копирования из командной строки. Вот команды, которые используются чаще всего:
wbadmin start backup— запуск однократного резервного копированияwbadmin start systemstatebackup— резервное копирование System Statewbadmin start recovery— запуск восстановления из резервной копииwbadmin start systemstaterecovery— восстановление System Statewbadmin get versions— список доступных резервных копийwbadmin get items— содержимое конкретной резервной копииwbadmin get status— статус текущей операцииwbadmin delete backup— удаление старых резервных копийwbadmin enable backup— настройка расписания резервного копированияwbadmin disable backup— отключение расписания
Резервное копирование тома целиком
Самый частый сценарий в нашей практике — полный бэкап системного тома на внешний или сетевой диск. Команда для резервного копирования тома C: на диск D: выглядит так:
wbadmin start backup -backupTarget:D: -include:C: -vssFull -quiet
Разберём ключевые параметры:
-backupTarget— целевой диск или UNC-путь к сетевой папке-include— какие тома или папки включить в бэкап-vssFull— полная копия VSS, обновляет атрибуты архивации файлов-vssCopy— копия VSS без изменения атрибутов; используйте этот режим, если параллельно работает стороннее ПО для бэкапов — иначе получите конфликт-quiet— подавление интерактивных запросов, без этого автоматизация просто не работает
Для бэкапа на сетевой ресурс с авторизацией команда немного другая:
wbadmin start backup -backupTarget:\\\\fileserver\backups -include:C: -user:DOMAIN\backupuser -password:P@ssw0rd -vssFull -quiet
System State: что это и как сохранить
System State — это не просто «какие-то системные файлы». Это набор компонентов, без которых сервер либо не запустится, либо потеряет всю доменную инфраструктуру. Состав зависит от установленных ролей:
- Реестр Windows
- База данных Active Directory (
NTDS.DIT) — на контроллерах домена - Папка SYSVOL с групповыми политиками
- Сертификаты и база данных AD CS
- DNS-зоны при интеграции с AD
- Загрузочные файлы и метаданные IIS
- Информация кластера — если настроен
# Резервная копия System State на диск E:
wbadmin start systemstatebackup -backupTarget:E: -quiet
# Резервная копия System State в сетевую папку
wbadmin start systemstatebackup -backupTarget:\\\\nas01\sysstate -quiet
Автоматизация бэкапов через 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
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
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 или позвоните, и забудьте о страхе потери данных.
Комментарии