Advertisement
vanhoivo

Windows 10 Repair Script

Aug 13th, 2015
774
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.42 KB | None | 0 0
  1. @echo off
  2. color 1f
  3. SetLocal EnableDelayedExpansion
  4.  
  5.  
  6. :Begin UAC check and Auto-Elevate Permissions
  7. :-------------------------------------
  8. REM  --> Check for permissions
  9. >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
  10.  
  11.  
  12. REM --> If error flag set, we do not have admin.
  13. if '%errorlevel%' NEQ '0' (
  14. echo:
  15. echo   Requesting Administrative Privileges...
  16. echo   Press YES in UAC Prompt to Continue
  17. echo:
  18.  
  19.  
  20.     goto UACPrompt
  21. ) else ( goto gotAdmin )
  22.  
  23.  
  24. :UACPrompt
  25.     echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
  26.     echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
  27.  
  28.  
  29.     "%temp%\getadmin.vbs"
  30.     exit /B
  31.  
  32.  
  33. :gotAdmin
  34.     if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
  35.     pushd "%CD%"
  36.     CD /D "%~dp0"
  37. :--------------------------------------
  38. Title Windows System File Restore -murphy78
  39. :REPAIRIT
  40. ECHO -------------------------------------------------------------------------------
  41. echo.                     Windows System File Restore
  42. ECHO -------------------------------------------------------------------------------
  43.  
  44.  
  45. ECHO This script will repair system files by using install source files.
  46. ECHO If no install source files are found, it will try to use online mode,
  47. ECHO but it should be noted that online mode rarely works.
  48. ECHO -------------------------------------------------------------------------------
  49. CHOICE /c YN /n /M "Run this script? (Y/N): "
  50. IF %ERRORLEVEL% NEQ 1 EXIT
  51. SET INSTALLIMAGE=""
  52. SET SPLIT=0
  53. SET ESDFILE=0
  54.  
  55.  
  56. FOR %%i IN (Z Y X W V U T S R Q P O N M L K J I H G F E D C B A) DO (IF EXIST "%%i:\Sources\install.wim" SET INSTALLIMAGE="%%i:\Sources\install.wim"&GOTO :FOUNDIMG)
  57. FOR %%i IN (Z Y X W V U T S R Q P O N M L K J I H G F E D C B A) DO (IF EXIST "%%i:\Sources\install.esd" SET INSTALLIMAGE="%%i:\Sources\install.esd"&SET ESDFILE=1&GOTO :FOUNDIMG)
  58. FOR %%i IN (Z Y X W V U T S R Q P O N M L K J I H G F E D C B A) DO (IF EXIST "%%i:\Sources\install.swm" SET INSTALLIMAGE="%%i:\Sources\install.swm"&SET SPLIT=1&SET SPLITPATTERN="%%i:\Sources\install*.swm"&GOTO :FOUNDIMG)
  59.  
  60.  
  61. :IF none of the install.wim, esd, or swm, files were found in a sources\ directory, just do normal online restore
  62. IF NOT EXIST !INSTALLIMAGE! (
  63. CLS
  64. ECHO ===============================================================================
  65. echo.               No install image found: Attempting online restore
  66. ECHO -------------------------------------------------------------------------------
  67. dism /online /cleanup-image /restorehealth
  68. GOTO :FINISHED
  69. )
  70.  
  71.  
  72. :FOUNDIMG
  73. CLS
  74. ECHO Scanning !INSTALLIMAGE! to create the index list file...
  75. IF EXIST "%TEMP%\IMAGELIST.TXT" del /q/f "%TEMP%\IMAGELIST.TXT"
  76. IF EXIST "%TEMP%\install.wim" del /q/f "%TEMP%\install.wim"
  77. for /f "tokens=2 delims=: " %%a in ('dism /Get-WimInfo /WimFile:!INSTALLIMAGE! ^| find /i "Index"') do (
  78. for /f "tokens=2 delims=:" %%g in ('dism /Get-WimInfo /WimFile:!INSTALLIMAGE! /Index:%%a ^| find /i "Name"') do (ECHO %%a.%%g>>%TEMP%\IMAGELIST.TXT))
  79. ECHO ===============================================================================
  80. ECHO =============================== INDEX SELECTION ===============================
  81.  
  82.  
  83. :Display-Indexes
  84. TYPE %TEMP%\IMAGELIST.TXT
  85. ECHO ========================== SELECT INDEX OR Q TO EXIT ==========================
  86. SET INPUT=
  87. SET /P INPUT="Please select an Index Number or Q to exit: "
  88. IF NOT DEFINED INPUT GOTO :IMAGESELECTION
  89. IF /I '!INPUT!'=='Q' GOTO :FINISHED
  90. SET INDEX=!INPUT!
  91.  
  92.  
  93. :CONFIRMINDEX
  94. echo.
  95. Echo You have selected Index: %INDEX%
  96. dism /get-wiminfo /wimfile:%INSTALLIMAGE% /index:%INDEX%>NUL 2>NUL
  97. IF %ERRORLEVEL% NEQ 0 GOTO :FOUNDIMG
  98. choice /c yn /n /m "Are you sure you wish to use this index? (Y/N): "
  99. IF !ERRORLEVEL! NEQ 1 GOTO :FOUNDIMG
  100. IF %SPLIT%==1 GOTO :FOUNDSPLIT
  101. IF %ESDFILE%==1 GOTO :FOUNDESD
  102.  
  103.  
  104. :Using normal wim
  105. ECHO -------------------------------------------------------------------------------
  106. echo.                         Repairing System Files
  107. ECHO -------------------------------------------------------------------------------
  108.  
  109.  
  110. dism /online /cleanup-image /restorehealth:wim:"%INSTALLIMAGE%":1
  111. GOTO :FINISHED
  112.  
  113.  
  114.  
  115.  
  116. :FOUNDSPLIT
  117. ECHO -------------------------------------------------------------------------------
  118. echo.              Script is exporting split-wim file to a normal wim
  119. echo.                         This will take a while
  120. ECHO -------------------------------------------------------------------------------
  121. dism /export-image /sourceimagefile:%INSTALLIMAGE% /swmfile:%SPLITPATTERN% /sourceindex:%INDEX% /destinationimagefile:%TEMP%\install.wim /compress:max
  122. IF %ERRORLEVEL% NEQ 0 (ECHO There was a problem exporting this index to temp folder&pause&GOTO :FINISHED)
  123. ECHO -------------------------------------------------------------------------------
  124. echo.                         Repairing System Files
  125. ECHO -------------------------------------------------------------------------------
  126. dism /online /cleanup-image /restorehealth:wim:"%TEMP%\install.wim":1
  127. GOTO :FINISHED
  128.  
  129.  
  130. :FOUNDESD
  131. ECHO -------------------------------------------------------------------------------
  132. echo.                Script is exporting esd file to a normal wim
  133. echo.                         This will take a while
  134. ECHO -------------------------------------------------------------------------------
  135. dism /export-image /sourceimagefile:%INSTALLIMAGE% /sourceindex:%INDEX% /destinationimagefile:%TEMP%\install.wim /compress:max
  136. IF %ERRORLEVEL% NEQ 0 (ECHO There was a problem exporting this index to temp folder&pause&GOTO :FINISHED)
  137. ECHO -------------------------------------------------------------------------------
  138. echo.                         Repairing System Files
  139. ECHO -------------------------------------------------------------------------------
  140. dism /online /cleanup-image /restorehealth:wim:"%TEMP%\install.wim":1
  141. GOTO :FINISHED
  142.  
  143.  
  144.  
  145.  
  146. :FINISHED
  147. IF EXIST "%TEMP%\IMAGELIST.TXT" del /q/f "%TEMP%\IMAGELIST.TXT"
  148. IF EXIST "%TEMP%\install.wim" del /q/f "%TEMP%\install.wim"
  149. ECHO -------------------------------------------------------------------------------
  150. echo.                                 Finished
  151. ECHO -------------------------------------------------------------------------------
  152. echo Press any key to exit...
  153. pause>NUL
  154. goto :EOF
  155. ============================================================================================================================================
  156. Note: System_File_Repair.cmd
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement