PDA

Показать полную графическую версию : [решено] Не создаются точки восстановления с помощью WMIC


wheel69
19-11-2016, 00:09
Всем привет!

Не создаются точки восстановления с помощью команды
WMIC /Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "%DATE%", 100, 7

На самом деле точка один единственный раз всё же создалась (пробовал на Windows 10)
На скрине окна свойств системы она выделена курсором (здесь почему-то Description не тот, что задавался параметром - почему?).
На скрине cmd видны: список точек (а здесь задуманный Description отображается верно), затем выполнение команды создания точки, проверка списка - результат нулевой.
Две последние точки, которые "вручную", были созданы вручную через окно свойств системы.

Таким образом, с помощью wmic создать точку больше не получается. При этом в результате выполнения - сообщение, что все хорошо.

Кроме того, в планировщике в \microsoft\windows\systemrestore\ есть задача SR с командой
srtasks ExecuteScheduledSPPCreation
У этого задания нет ни одного триггера, и выполнение его вручную, а также запуск команды в консоли не дают результата - точка не создается.

Есть мнение, что система не дает создавать точки слишком часто, но (!) при этом вручную они создаются без проблем с любой переиодичностью.
В интернетах находил информацию о параметре SystemRestorePointFrequency в реестре по пути HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ SystemRestore, установка которого в 0 (ноль) не помогла, а должна была выключить ограничения.

Пока оформлял пост, заметил в логах событие, недвусмысленно намекающее на ограничение в частоте создания точек восстановления
Пропущено создание точки восстановления (процесс = C:\WINDOWS\system32\wbem\wmiprvse.exe; описание = 18.11.2016), так как уже имеется точка восстановления системы, созданная недавно.

Судя по логам также отвергаются попытки создания точек и другими приложениями, например, установщиком msi-пакетов

Что еще можно предпринять, чтобы точки таки создавались с помощью wmic, или планировщика? Как правильно выключить/обойти ограничение на частоту создания точек восстановления?

Nordek
19-11-2016, 02:07
Description не тот »
Пробуйте так (Тип: Система):
WMIC /Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "%DATE%", 100, 12


или так (Тип: Вручную):
WMIC /Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "%DATE%", 100, 16


с помощью wmic создать точку больше не получается. При этом в результате выполнения - сообщение, что все хорошо. »Точка восстановления создаётся не мгновенно, подождите немного времени.

wheel69
19-11-2016, 02:41
Nordek, конечно же, я перепробовал все RestorePointType, но забыл об этом упомянуть.
Сейчас вновь попробовал выполнить WMIC /Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "%DATE%", 100, 7 операция прошла успешно. Получается, до следующего раза необходимо ждать 24 часа.

Точка восстановления создаётся не мгновенно, подождите немного времени. » Когда точка реально создается, это делается несколько секунд. Но, если нет, то ответ (положительный) приходит моментально.

на скрине разукрасил: была у меня крайняя точку "вручную" - синим
запуск команды, ответ - зеленым
появилась новая точка - красным
снова запуск - ответ так же положительный
но новой точки нет

и так будет походу еще 24 часа.


Теперь вопрос только в том, как отменить ограничение, чтобы можно было делать точки чаще суток.
Была надежда на SystemRestorePointFrequency, но оно либо не работает, либо не правильно пользуюсь.

Nordek
19-11-2016, 04:39
wheel69, CreateRestorePoint method of the SystemRestore class (https://msdn.microsoft.com/en-us/library/aa378847%28VS.85%29.aspx)
Windows 8:

A new registry key enables application developers to change the frequency of restore-point creation.

Applications should create this key to use it because it will not preexist in the system. The following will apply by default if the key does not exist. If an application calls the CreateRestorePoint method to create a restore point, Windows skips creating this new restore point if any restore points have been created in the last 24 hours. The CreateRestorePoint method returns S_OK.

Developers can write applications that create the DWORD value SystemRestorePointCreationFrequency under the registry key HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore. The value of this registry key can change the frequency of restore point creation. The value of this registry key can change the frequency of restore point creation.

If the application calls CreateRestorePoint to create a restore point, and the registry key value is 0, system restore does not skip creating the new restore point.

If the application calls CreateRestorePoint to create a restore point, and the registry key value is the integer N, system restore skips creating a new restore point if any restore points were created in the previous N minutes.

В HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore создайте параметр SystemRestorePointCreationFrequency с значением 0.

wheel69
19-11-2016, 13:56
Nordek, спасибо, помогло
вот эта заметка (http://www.howtogeek.com/278388/how-to-make-windows-automatically-create-a-system-restore-point-at-startup/) ввела меня в заблуждение относительно имени ключа

Eugaliod
29-09-2017, 15:46
Извините, если лишнее, но мало ли кому пригодится.
Сделал для автоматизации процесса себе такой CMD:
@echo off
echo Write permission for creating Restore point...
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" /v SystemRestorePointCreationFrequency /t REG_DWORD /d 00000000 /f
echo Creating restore point...
WMIC /Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "%DATE%", 100, 7
timeout /T 2 /NOBREAK>nul




© OSzone.net 2001-2012