Subscribe to Windows IT Pro
January 26, 2005 12:00 AM

JSI Tip 8979. How can I use the command-line, or a batch, to disable Windows XP Professional System Restore on one or all drives?

Windows IT Pro
InstantDoc ID #82876
Rating: (0)

I have scripted DisableRP.bat to disable Windows XP Professional System Restore on one or all drives.

The syntax for using DisableRP.bat is:

DisableRP Drive RetVal

Where Drive is the drive letter of the drive on which you want to disable System Restore, or ALL to disable it on all drives, and RetVal is a call directed environment variable that will contain a Y if the script was successful, or a N is the script failed to disable the requested object.

NOTE: If you disable System Restore on the boot drive, System Restore will be disabled on all drives.

NOTE: The boot drive is the drive that contains the Windows folder, and the system drive is the drive that contains the files that Windows uses to start, like Boot.ini, NTLDR, etc..

NOTE: See the following tips:

How can I create a Restore Point in Windows XP, from the command-line, or from a batch?
How can I retrieve all the available Restore Points on a Windows XP Professional computer?
How can I restore a Windows XP Professional Restore Point from the command-line, or from a batch?
How can I test the status of the last Windows XP Professional System Restore?

DisableRP.bat contains:

@echo off
if {%2}=={} @echo Syntax: DisableRP Drive RetVal&goto :EOF
setlocal
set work=%1
if /i "%work%" NEQ "ALL" set drive=%work:~0,1%:set DisableRPVBS="%TEMP%\DisableRP_%RANDOM%.VBS"
set OK=N
@echo Set objArgument = Wscript.Arguments>%DisableRPVBS%
@echo If objArgument.Count() ^> 0 Then>>%DisableRPVBS%
@echo Drive =  objArgument(0)>>%DisableRPVBS%
@echo Else>>%DisableRPVBS%
@echo Drive = "">>%DisableRPVBS%
@echo End If>>%DisableRPVBS%
@echo Set obj = GetObject("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")>>%DisableRPVBS%
@echo If (obj.Disable(Drive)) = 0 Then>>%DisableRPVBS%
@echo     wscript.Echo "Y">>%DisableRPVBS%
@echo Else>>%DisableRPVBS%
@echo     wscript.Echo "N">>%DisableRPVBS%
@echo End If>>%DisableRPVBS%
for /f "Tokens=*" %%d in ('cscript //nologo %DisableRPVBS% %drive%') do (
 set OK=%%d
)
del /q %DisableRPVBS%
endlocal&set %2=%OK%



Related Content:

ARTICLE TOOLS

Comments
    There are no comments to display. Be the first one!
You must log on before posting a comment.

Are you a new visitor? Register Here

advertisement

advertisement

Windows is a trademark of the Microsoft group of companies. Windows IT Pro is used by Penton Media Inc. under license from owner.