Создание новых точек восстановления, просмотр существующих и запуск отката системы с помощью всего нескольких командлетов.
Небольшая статья для тех, кто так же как и я не стал поклонником графического интерфейса утилиты «Восстановление Windows», которая совершив уникально долгий путь из старых версий операционных систем, в новой W11 выглядит, по меньшей мере, нелепо, хотя является важным инструментом в арсенале пользователя и поныне.
🔗 Непобедимые 2% или Камень преткновения для Microsoft
К счастью, PowerShell предлагает ряд командлетов, которые можно легко использовать для создания точек восстановления, их удаления и отката системы назад.
✏️ПРИМЕЧАНИЕ: Командлет, это не командир 🧑✈️ летательного аппарата🛩️, а собственная команда PowerShell, которая не выносится в отдельные исполняемые файлы. Командлеты группируются в модули PowerShell, которые можно загружать по требованию. Командлеты могут быть написаны на любом компилируемом языке .NET или на собственном языке скриптов PowerShell.
Как можно использовать PowerShel для восстановления системы
Для инициализации процессов, которые служба восстановления системы активирует в результате того или иного действия в PowerShel есть несколько полезных командлетов.
- Enable-ComputerRestore или Disable-ComputerRestore — включает или отключает защиту диска.
- Checkpoint-Computer — создаёт новую точку восстановления.
- Get-ComputerRestorePoint — отображает все доступные точки восстановления.
- Restore-Computer — указывает программе восстановления системы выполнить откат к определенной точке восстановления.
Включение и отключение восстановления системы
Командлеты Enable-ComputerRestore и Disable-ComputerRestore позволяют выбрать диски для защиты с помощью восстановления системы. Синтаксис прост, но точен: разделенный запятыми список поддерживаемых дисков, например:
Enable-ComputerRestore "C:\", "D:\"
⚠️ Командлет Enable-ComputerRestore включает защиту дисков «С» и «D», но не задаёт размер хранилища данных для точек восстановления.
Просмотр доступных точек восстановления в PowerShell
Перед откатом системы для решения проблемы с плохо работающей Windows необходимо знать, к каким точкам восстановления можно выполнить возврат. Для этого есть командлет Get-ComputerRestorePoint, который выведет на экран все доступные точки
Get-ComputerRestorePoint
Важными данными, которые можно получить из этого списка, является значение SequenceNumber — именно так вы определите желаемую точку восстановления restore-Computer.
Как узнать состояние предыдущей операции восстановления в PowerShell
Get-ComputerRestorePoint в качестве альтернативы покажет окончательное состояние предыдущей операции восстановления системы с параметром -LastStatus, например:
Get-ComputerRestorePoint -LastStatus
Ответом станет текстовое сообщение, например Если компьютер не был восстановлен из-за сбоя.
Как выполнить откат системы в PowerShell
Найдя нужную точку восстановления, выполните откат компьютера к ней с помощью:
Restore-Computer -RestorePoint <sequencenumber>
Например, чтобы выполнить откат к последней точке восстановления на примере моего компьютера, я бы ввел:
Restore-Computer -RestorePoint 12
Кроме того, если вы уверены, что хотите выполнить восстановление до последней точки восстановления, вы можете объединить Get-ComputerRestorePoint и Restore-Computer, например:
Restore-Computer -RestorePoint (Get-ComputerRestorePoint)[-1].sequencenumber
После нажатия клавиши «Enter» этот командлет начнёт возврат системы к последней точке восстановления.
⚠️ Обратите внимание, что Restore-Computer не будет спрашивать вас перед продолжением, а просто начнёт процедуру отката. Если вам нужен запрос на подтверждение действия, добавьте в командлет
-confirm
Restore-Computer -RestorePoint (Get-ComputerRestorePoint)[-1].sequencenumber -confirm
Создание новой точки восстановления системы
Наконец, иногда пользователю нужно программно заставить службу восстановления системы создать новую точку. Например, «юзер» решил установить новый драйвер или задумал обновление Windows.
Сделать это можно, запустив Checkpoint-Computer, а затем пробел и описательное имя точки восстановления в кавычках, например:
Checkpoint-Computer "GPU-driver-installation-20230129"