This post tells you how to schedule the creation of daily System Restore point during startup or logon in all versions of Windows, including Windows 10 and Windows 11.
The first method involves a VBScript that I wrote to create restore points, and the 2nd method uses the WMI command-line tool Wmic.exe. The script method has an advantage where you can force the creation of restore point even if a previous restore point was created within the last 24 hours.
Create Restore Points Daily Using Task Scheduler
To create a daily restore point automatically, follow one of these methods:
Method 1: Using Task Scheduler and VBScript
- Download automatic_restore_point.zip, unzip and extract the enclosed VBScript file to your C:\Windows directory.
- Launch Task Scheduler (
taskschd.msc
) and click Create Task… in the Actions pane.
- Type the name and description for the task.
- Click Change User or Group…, type SYSTEM, and press ENTER. This makes the task run under the Local System account.
- Enable Run with highest privileges checkbox.
- Select Windows 10 in the Configure for: drop-down list box.
- Click the Triggers tab, and click New.
- In the Begin the task, select either At startup, or At log on option. If selecting the latter, select Specific user: so that the task is triggered when logging on to the specific user account.
- Click OK, and click the Actions tab
- Click New… In the New Action dialog, either type or Browse to select the following file:
C:\Windows\System32\Wscript.exe
- In the Add arguments (optional) field, type the path the script is moved, in this case:
C:\Windows\automatic_restore_point.vbs
- Click OK.
This adds the entry to the Actions tab.
- Click OK.
That’s it! You’ve configured Task Scheduler to create a System Restore point daily.
More Information & Script Customization
To check if the scheduled creation of the system restore point has worked, open the System Restore (rstrui.exe
) window.
Note that this script, by default, doesn’t create a restore point if a recent one exists and is created in the last 24 hours. To force the script to create the restore point regardless of the last restore point creation date/time, open Notepad elevated (Run as Administrator) and change the following line in the script:
i24hrsLimit = 1
to
i24hrsLimit = 0
… and save the file.
The downside of setting it to 0
is that a restore point will be created at every startup/login. For example, if you reboot the computer 3 times a day, there will be 3 restore points.
(As you can see in the following screenshot, the script has been run twice and has successfully created two restore points on the same day bypassing the 24 hrs limit. The screenshot is from a Windows 11 device.)
Additional Notes
- The VBScript script used in this article is based on my earlier script at Create System Restore Points Using Script Or Command-Line, but slightly modified so as to make it run as a scheduled task.
- Windows has already a built-in System Restore task that is supposed to create regular system protection points. However, it may not be creating a restore point on a daily basis. Moreover, in Windows 8 and higher, automatic System Restore points are not created if one was already created in the last 24 hours. Also, the frequency (24 hours) can be altered by setting the registry value
SystemRestorePointCreationFrequency
, as specified in the MSDN article CreateRestorePoint method of the SystemRestore class.
Method 2: Using WMIC.exe at Startup or Login
Use the same procedure as above (Steps 1 through 9) for creating the task, but in the “New Action” window use the following Program name in the Program/script: text box.
wmic.exe
In the Add arguments (optional), use the following parameters:
/Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "Automatic Daily Restore Point", 100, 7
That’s it! Hope you found the script and article useful. Let me know what you think, in the Comments section below!