Warum funktioniert das Skript "Wiederherstellungspunkt erstellen" unter Windows 7 und Windows 10 / 8.1 anders?

0

Aus einem How-to-Geek-Artikel erhalte ich ein Skript wie das folgende:

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

Ich erstelle mit diesem Skript eine geplante Aufgabe unter Windows 7, damit es täglich einen Wiederherstellungspunkt für mich erstellt, und es funktioniert einwandfrei.

Unter Windows 8.1 / 10 finde ich jedoch ein merkwürdiges Verhalten. In einer Administrator-CMD wird ausgeführt

cscript CreateRestorePoint.vbs

erstellt keinen neuen Wiederherstellungspunkt, wenn ein Wiederherstellungspunkt vorhanden ist (es wird jedoch weiterhin "Wiederherstellungspunkt erfolgreich erstellt" gedruckt). Mit anderen Worten, cscript CreateRestorePoint.vbserstellt einen Wiederherstellungspunkt erst, nachdem ich dies getan habe vssadmin delete shadows /all, aber ein zweiter Durchlauf cscript CreateRestorePoint.vbsschlägt aufgrund des vorhandenen ersten Wiederherstellungspunkts fehl. - Dieses Problem tritt unter Windows 7 SP1 nicht auf.

Kann jemand dieses Problem unter Windows 8.1 / 10 erklären und beheben?

UPDATE: Problem gelöst

Wie Ken in seinem Kommentar ausführt, ist das Hinzufügen eines Registrierungsschlüssels [HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore] SystemRestorePointCreationFrequency=10die Lösung (Neustart erforderlich). Seit Windows 8 erlaubt Microsoft standardmäßig, alle 24 Stunden nur einen Wiederherstellungspunkt zu erstellen. SystemRestorePointCreationFrequency=10verringern Sie diese Grenze auf 10 Minuten. Siehe diese MSDN-Seite .

Jimm Chen
quelle
Versuchen Sie "winmgmts: {impersonationLevel = impersonate}! Root / default: SystemRestore" (aus diesem Artikel entnommen ).
Harrymc

Antworten:

2

Es ist viel einfacher, Power Shell für Windows 8.1 und 10 zu verwenden. Beide haben es und Sie erstellen einen Einzeiler und benennen ihn.

Ein Hinweis .. Sie können den Checkpoint nur einmal alle 24 Stunden ausführen.

Platzieren Sie diese Zeile im Editor und speichern Sie die Datei als CreateCheckpoint.ps1 (stellen Sie sicher, dass die Datei nicht als CreateCheckpoint.ps1.txt gespeichert wird).

Checkpoint-Computer -Description "Daily Restore Point"

Wechseln Sie zu einer Administrator-Eingabeaufforderung, und geben Sie Powershell ein. Ein Fenster öffnet sich. Gehen Sie einfach zum Pfad der Datei und geben Sie ./createcheckpoint.ps1 ein, um den Wiederherstellungspunkt zu erstellen.

Wenn dies funktioniert, wird der Wiederherstellungspunkt in Ihrer Liste angezeigt. Wenn Sie dies in eine geplante Aufgabe einfügen möchten, erstellen Sie eine run.bat-Datei und platzieren Sie diese Zeilen darin. Ändern Sie den Pfad dahin, wo Sie die ps1-Datei abgelegt haben. Sie müssen die bat-Datei als Administrator ausführen.

@ECHO OFF
PowerShell.exe -command "& c:\restorepoint.ps1 -description 'DailyRP'"
PAUSE
Edelmann
quelle
Danke. Ich brauche etwas Zeit, um Powershell auszuprobieren. Meinten Sie, dass meine .vbs-Datei aufgrund des Limits "Nur einmal alle 24 Stunden erstellen" fehlschlägt? Gibt es eine offizielle Erklärung von Microsoft dazu? Wie kann man diese Grenze überschreiten?
Jimm Chen
Keine solche Beschränkung - nur, dass Windows automatisch einen Wiederherstellungspunkt erstellt, wenn dieser nicht innerhalb der letzten 24 Stunden erstellt wurde. Minimum statt Maximum. Siehe meinen Kommentar zum Beitrag.
Harrymc
2
WARNUNG: Ein neuer Systemwiederherstellungspunkt kann nicht erstellt werden, da innerhalb der letzten 1440 Minuten bereits ein neuer Systemwiederherstellungspunkt erstellt wurde. Die Häufigkeit der Erstellung von Wiederherstellungspunkten kann geändert werden, indem der DWORD-Wert "SystemRestorePointCreationFrequency" unter dem Registrierungsschlüssel "HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ SystemRestore" erstellt wird. Der Wert dieses Registrierungsschlüssels gibt das erforderliche Zeitintervall (in Minuten) zwischen der Erstellung von zwei Wiederherstellungspunkten an. Der Standardwert ist 1440 Minuten (24 Stunden).
NobleMan
Dies ist der Fall, wenn Sie ein Skript erstellen und es nicht manuell ausführen möchten.
NobleMan
Das ist nur eine Einschränkung von Checkpoint-Computer.
Harrymc