We have a batch file that creates a restore point as part of its task. Here is the relevant portion. The batch file basically creates a VBS, launches it, and then cleans itself up as suggested by Sidewinder:
@echo off
set RestoreVBS=Restore.vbs
set RPName=New Restore Point
:SysRestore
echo Checking to see if System Restore is enabled ...
net start | find /I "System Restore" >NUL
if not ERRORLEVEL 1 (
echo System Restore appears to be enabled
) else (
echo System Restore does not appear to be enabled!
echo Can not create system restore point.
echo Please enable System Restore and manually create a restore point.
pause
exit /b 1
)
:CreateRestorePoint
echo Creating restore point ...
echo set SRP = getobject("winmgmts:\\.\root\default:Systemrestore") >%RestoreVBS%
echo CSRP = SRP.createrestorepoint ("%RPName%", 0, 100) >>%RestoreVBS%
start /w wscript %RestoreVBS%
del %RestoreVBS%
echo Restore point "%RPName%" created