Sean,
I would use the WMI for this; To set the restore point try this:
'use WMI moniker and SystemRestore class
set SRP = getobject("winmgmts:\\.\root\default:Systemrestore")
CSRP = SRP.createrestorepoint ("Factory Setting", 0, 100)
To enumerate your restore point try this:
set SRP = getobject("winmgmts:\\.\root\default").InstancesOf
("systemrestore")
for each Point in SRP
msgbox point.creationtime & vbcrlf & point.description & vbcrlf & "Sequence
Number= " & point.sequencenumber
next
and to call a restore point try this:
set SRP = getobject("winmgmts:\\.\root\Default:SystemRestore")
eSRP = SRP.Restore(SPECIFY_A_POINT) 'parameter passed is the sequence
number of the restore point you want to roll back to.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Shutdown)}!\\" & strComputer &
"\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
ObjOperatingSystem.Reboot()
Next
The restore location is mapped to the system drive and I don't know if there
is a way to change the location; perhaps the path is in the registry, but
you will have to verify that on your own. At any rate, I hope this helps.
Regards,
Sean Gahan