В версии 2.0 появились командлеты, которые позволяют в однострочном режиме управлять параметрами восстановления системы. В них входят:
Мой вариант костылей для версии 1.0 описан здесь: SystemRestore и PowerShell. По сути в версии 1.0 доступно большинство функционала V2, но только в виде самописных функций, в V2 уже есть всё (или почти всё) в коробке. Для работы этих командлетов так же потребуются клиентские версии ОС Windows XP/Windows Vista. Посмотрим их попорядку:
1) Get-ComputerRestorePoint - получает список доступных точек восстановления.
Get-ComputerRestorePoint 490 - 490 - опциональный параметр, который позволяет получить сведения о конкретной точке восстановления.
[System32] Get-ComputerRestorePoint
CreationTime Description SequenceNumber EventType RestorePointType
------------ ----------- -------------- --------- ----------------
2008.12.29. 21:14:04 Windows Installer installed... 490 BEGIN_SYSTEM_C... APPLICATION_INSTALL
2008.12.29. 21:56:01 Windows Update 491 BEGIN_SYSTEM_C... APPLICATION_INSTALL
2008.12.29. 21:58:55 Windows Update 492 BEGIN_SYSTEM_C... APPLICATION_INSTALL
2008.12.31. 1:38:08 Windows Update 493 BEGIN_SYSTEM_C... APPLICATION_INSTALL
2009.01.01. 21:53:49 Windows Installer installed... 494 BEGIN_SYSTEM_C... APPLICATION_INSTALL
2009.01.01. 22:03:01 Windows Installer installed... 495 BEGIN_SYSTEM_C... APPLICATION_INSTALL
2009.01.02. 1:38:06 Windows Update 496 BEGIN_SYSTEM_C... APPLICATION_INSTALL
2009.01.02. 19:45:27 Windows Installer installed... 497 BEGIN_SYSTEM_C... APPLICATION_INSTALL
[System32] Get-ComputerRestorePoint 490 | select *
__GENUS : 2
__CLASS : SystemRestore
__SUPERCLASS :
__DYNASTY : SystemRestore
__RELPATH : SystemRestore.SequenceNumber=490
__PROPERTY_COUNT : 5
__DERIVATION : {}
__SERVER : THOR
__NAMESPACE : root\default
__PATH : \\THOR\root\default:SystemRestore.SequenceNumber=490
CreationTime : 20081229191404.400068-000
Description : Windows Installer installed Quest PowerGUI 1.5.3.
EventType : 100
RestorePointType : 0
SequenceNumber : 490
Scope : System.Management.ManagementScope
Path : \\THOR\root\default:SystemRestore.SequenceNumber=490
Options : System.Management.ObjectGetOptions
ClassPath : \\THOR\root\default:SystemRestore
Properties : {CreationTime, Description, EventType, RestorePointType...}
SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers : {dynamic}
Site :
Container :
[System32]
Если посмотреть внимательней, то можно легко заметить, что данный командлет (как и все остальные, которые относятся к SystemRestore) реализован через тот же WMI класс SystemRestore. Поэтому на эти командлеты будут накладываться ограничения, которые накладывает этот класс. Это и версия ОС и права доступа. В данном случае для работы с командлетами восстановления системы нужны права администратора и для Windows Vista - проход запроса UAC.
2) Checkpoint-Computer - создаёт новую точку восстановления. Синтаксис командлета может быть такой:
Checkpoint-Computer -RestorePointType Application_Install -Description CustomDescription
-RestorePointType может иметь следующие значения:
-Description может иметь любое значение, поскольку это будет всего лишь описание. Но лучше использовать рекомендованные значения для описаний, которые документированы в статье MSDN: Restore Point Description Text. Стандартизация в наше время - это очень важно. Время создания точки восстановления на моём нотебуке составило чуть больше минуты и на экране консоли будет такой псевдографический прогресс-бар:
я вот тоже хочу как-нибудь научиться делать такие прогресс-бары.
3) Restore-Computer - восстанавливает компьютер до указанной точки восстановления:
Restore-Computer -RestorePoint 490 -Confirm -WhatIf
в параметре -RestorePoint указывается номер точки восстановления, который можно получить командой Get-ComputerRestorePoint. Данный командлет обладает ещё опциональными параметрами -Confirm, который будет требовать подтверждения пользователя и -WhatIf, который будет полезен в отладочных целях.
Примечание: после успешного выполнения данной команды компьютер будет перезагружен в обязательном порядке для завершения восстановления.
4) Enable-ComputerRestore - включает режим восстановления системы для всех дисков или для определённых.
Enable-ComputerRestore -Drive "C:\" -WhatIf
Параметры -Drive и -WhatIf являются не обязательными. Если не указан -Drive, то восстановление системы будет включено для всех допустимых дисков в системе.
5) Disable-ComputerRestore - отключает режим восстановления системы для всех дисков или определеённых:
Disable-ComputerRestore -Drive "C:\" -WhatIf
Параметры -Drive и -WhatIf являются не обязательными. Если не указан -Drive, то восстановление системы будет отключено для всех дисков в системе.
К сожалению функционал изменения настроек SystemRestore, как резервирование места для точек восстановления, время хранения, периодичность создания точек не реализован в командлетах. А ведь лишним это не будет однозначно. Поэтому в отношении CTP3 эти вещи придётся реализовывать с помощью WMI самостоятельно.
Comments: