Из статьи с практическими рекомендациями я получаю такой скрипт:

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.

1 ответ1

2

Гораздо проще использовать Power Shell для Windows 8.1 и 10. У них обоих есть это, и вы создаете один лайнер и называете это.

Одна заметка .. Вы можете запускать контрольную точку только один раз каждые 24 часа.

Поместите эту строку в блокнот и сохраните файл как CreateCheckpoint.ps1 (убедитесь, что файл не сохранен как CreateCheckpoint.ps1.txt).

Checkpoint-Computer -Description "Daily Restore Point"

Перейдите в командную строку администратора и введите powershell. Откроется окно. Просто перейдите к пути к файлу и введите ./createcheckpoint.ps1, и он создаст точку восстановления.

Если это работает, это покажет точку восстановления в вашем списке. Если вы хотите поместить это в запланированное задание, создайте файл run.bat и поместите в него эти строки. Измените путь ниже, где вы разместили файл ps1. Вам нужно запустить файл bat как администратор.

@ECHO OFF
PowerShell.exe -command "& c:\restorepoint.ps1 -description 'DailyRP'"
PAUSE

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .