Из статьи с практическими рекомендациями я получаю такой скрипт:
strDesc = "Restore Point by script"
Set oArgs = WScript.Arguments
If oArgs.Count > 0 Then strDesc = oArgs(0)
WScript.Echo "Creating Restore Point: " & strDesc
Set oRestorePoint = GetObject("winmgmts:\\.\root\default:SystemRestore")
strResult = oRestorePoint.CreateRestorePoint(strDesc, 0, 100)
If strResult <> 0 Then
WScript.Echo "Error " & strResult & ": Unable to create Restore Point"
WScript.Sleep 444000 'Let user see the result
Else
WScript.Echo "Restore Point created successfully."
WScript.Sleep 2000 'Let user see the result
End If
WScript.Quit strResult
Я создаю запланированное задание с помощью этого сценария в Windows 7, чтобы он ежедневно создавал для меня точку восстановления, и она хорошо работает.
Однако в Windows 8.1/10 я нахожу странное поведение. Внутри администратора CMD, выполняя
cscript CreateRestorePoint.vbs
не создает новую точку восстановления при наличии какой-либо точки восстановления (но при этом по-прежнему выводится "Точка восстановления создана успешно"). Другими словами, cscript CreateRestorePoint.vbs
создает точку восстановления только после того, как я vssadmin delete shadows /all
, но второй запуск cscript CreateRestorePoint.vbs
не выполняется из-за существующей первой точки восстановления. - Эта проблема не возникает в Windows 7 SP1.
Может кто-нибудь объяснить и исправить эту проблему на Windows 8.1/10?
[[[ОБНОВЛЕНИЕ: Проблема решена]]]
Как и Кен в своем комментарии, добавление раздела реестра [HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore] SystemRestorePointCreationFrequency=10
является решением (требуется перезагрузка). Начиная с Windows 8, Microsoft по умолчанию позволяет создавать только одну точку восстановления каждые 24 часа. SystemRestorePointCreationFrequency=10
уменьшить это ограничение до 10 минут. Смотрите эту страницу MSDN.