Hi Abhishek,
I just fell over this tutorial while browsing through the forums. Excellent bit of work.
The list of system files I've modified was growing longer and longer.
Code:
Program Files\wordpad.exe.mui
Program Files (x86)\wordpad.exe.mui
System32\CMD.EXE
System32\IMAGERES.DLL
System32\DDORES.DLL
System32\IMAGESP1.DLL
System32\mstsc.exe
System32\occache.dll
System32\PNIDUI.DLL
System32\SHELL32.DLL
System32\TASKMGR.EXE
System32\wbemcntl.dll
System32\ZIPFLDR.DLL
SysWOW64\CMD.EXE
SysWOW64\DDORES.DLL
SysWOW64\explorer.exe
SysWOW64\IMAGESP1.DLL
SysWOW64\IMAGERES.DLL
SysWOW64\mstsc.exe
SysWOW64\occache.dll
SysWOW64\PNIDUI.DLL
SysWOW64\REGEDIT.EXE
SysWOW64\SHELL32.DLL
SysWOW64\taskmgr.exe
SysWOW64\wbemcntl.dll
SysWOW64\ZIPFLDR.DLL
WINDOWS\EXPLORER.EXE
WINDOWS\REGEDIT.EXE
WINDOWS\Branding\Basebrd\BASEBRD.DLL
Renaming/replacing them all was becoming a pain the a*se So I ended up writing a batch file to do the donkey work for me while I rolled a tab!
First off, I downloaded from, and saved this code after editing it as explained at
Ramesh Srinivasan's site, as Restore Point.vbs
Code:
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
'Script to create a System Restore point in Windows 7 | Vista | XP
'May 10 2008 - Revised on Jan 10, 2009
'© 2008 Ramesh Srinivasan. http://www.winhelponline.com
'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
If GetOS = "Windows XP" Then
CreateSRP
End If
If GetOS = "Windows Vista" Or GetOS = "Windows 7" Then
If WScript.Arguments.length =0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", """" & _
WScript.ScriptFullName & """" & " uac","", "runas", 1
Else
CreateSRP
End If
End If
Sub CreateSRP
Set SRP = getobject("winmgmts:\\.\root\default:Systemrestore")
sDesc = "Pre System File Replacement"
If Trim(sDesc) <> "" Then
sOut = SRP.createrestorepoint (sDesc, 0, 100)
If sOut <> 0 Then
WScript.echo "Error " & sOut & _
": Unable to create Restore Point."
End If
End If
End Sub
Function GetOS
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
".\root\cimv2")
Set colOS = objWMI.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOS in colOS
If instr(objOS.Caption, "Windows 7") Then
GetOS = "Windows 7"
ElseIf instr(objOS.Caption, "Vista") Then
GetOS = "Windows Vista"
elseIf instr(objOS.Caption, "Windows XP") Then
GetOS = "Windows XP"
End If
Next
End Function
I also download the Sleep.exe from
ComputerHope which comes with the Windows Resource kit. I keep both of these in the same folder as my
Batch Swap.bat file. Finally I downloaded Delnext.exe from
Gammadyne which has to be put in your system32 folder.
The bat file gives you an opt out clause, if you continue it creates a restore point
(essential!!), waits a while for it to be created, takes ownership etc. Renames your "0ld" files "0ldie" so you still have a couple of steps backwards
(if they're there) and swaps the files out. Clears the icon and thumbnail caches and finally reboots. All while you munch on your sandwich/roll a tab/whatever. The script of the .bat file goes along the lines of this:
Code:
@echo off
[COLOR=Red][B]REM ***BATCH COMMANDS***
REM The commands without files inserted are:
REM takeown /f [COLOR=Green]FilePathName[/COLOR]
REM icacls [COLOR=Green]FilePathName[/COLOR] /grant administrators:F /t
REM REN [COLOR=Green]FilePathName1[/COLOR] [COLOR=Green]FilePathName2[/COLOR]
REM COPY "[COLOR=Green]FilePathName[/COLOR]" "[COLOR=Green]FilePathName[/COLOR]"[/B][/COLOR]
REM ***************************************
echo.
echo PLEASE SAVE ALL DATA AND CLOSE ALL WINDOWS BEFORE RUNNING THIS SCRIPT.
echo.
echo This script will begin by creating a Restore Point.
echo.
echo The script will then take ownership of the listed System files, rename
echo them by adding 0ld to the end of their file name and they will then be
echo replaced with their modified versions.
echo.
echo The thumbnail and icon caches will then de deleted before the
echo computer is rebooted.
set /p choice=Would you like to continue? Press "Y" for Yes or "N" for No:
if %choice%==y goto moveon
if %choice%==n goto dontmove
:moveon
cscript.exe "Batch Swap Restore Point.vbs"
echo.
echo.
echo Please wait while a Restore Point is made.
sleep 17
echo.
echo.
cls
[COLOR=Red][B]REM Add/remove "paths" if you have any different to these[/B][/COLOR]
DEL C:\WINDOWS\*0ldie.*
DEL C:\Windows\Branding\Basebrd\*0ldie.*
DEL C:\WINDOWS\en-US\*0ldie.*
DEL C:\WINDOWS\System32\*0ldie.*
DEL C:\WINDOWS\SysWOW64\*0ldie.*
DEL C:\WINDOWS\System32\en-US\*0ldie.*
DEL C:\WINDOWS\SysWOW64\en-US\*0ldie.*
DEL "C:\Program Files\Windows NT\Accessories\en-US\*0ldie.*"
DEL "C:\Program Files (x86)\Windows NT\Accessories\en-US\*0ldie.*"
REN C:\WINDOWS\*0ld.* *0ldie.*
REN C:\Windows\Branding\Basebrd\*0ld.* *0ldie.*
REN C:\WINDOWS\en-US\*0ld.* *0ldie.*
REN C:\WINDOWS\System32\*0ld.* *0ldie.*
REN C:\WINDOWS\SysWOW64\*0ld.* *0ldie.*
REN C:\WINDOWS\System32\en-US\*0ld.* *0ldie.*
REN C:\WINDOWS\SysWOW64\en-US\*0ld.* *0ldie.*
REN "C:\Program Files\Windows NT\Accessories\en-US\*0ld.*" *0ldie.*
REN "C:\Program Files (x86)\Windows NT\Accessories\en-US\*0ld.*" *0ldie.*
echo.
echo.
[B][COLOR=Red]REM Do the following four lines for each file you wish to swap out.
REM Obviously changing the file names and paths to match your modified ones!![/COLOR][/B]
TAKEOWN /F C:\Windows\EXPLORER.EXE
ICACLS C:\Windows\EXPLORER.EXE /grant administrators:F /t
REN C:\Windows\EXPLORER.EXE EXPLORER0ld.EXE
COPY "C:\The Path\To Your\Modified\EXPLORER.EXE" "C:\Windows\EXPLORER.EXE"
CD /d %userprofile%\AppData\Local
DEL IconCache.db /a
DELNEXT /d"%userprofile%\AppData\Local\Microsoft\Windows\Explorer" /nologo thumbcache_32.db thumbcache_96.db thumbcache_256.db thumbcache_1024.db thumbcache_idx.db thumbcache_sr.db
echo.
echo.
echo Finished!! :-) Now Re-booting.
echo.
sleep 3
shutdown /r /t 0
exit
:dontmove
echo.
echo The batch file operation has been cancelled.
sleep 3
echo.
pause
exit
That now makes swapping out all the system files a pleasure. Comes in handy as well when a Windows update replaces something and you've got to modify the new files because you can't stand what MS has done to your icons! Or you need to run an sfc /scannow which replaces all your hard work.
I've attached the three files mentioned for simplicity.
View attachment Batch Swap Restore Point.zip
View attachment delnext.zip
View attachment SLEEP.zip
HTH
fimble