commit beba8d46376110156e34d7009240bf5a15f854f5
Author: srket <srket@sonu.ch>
Date: Sun, 22 Aug 2021 13:29:40 +0300
Initial Commit
Diffstat:
A | Health Check.bat | | | 57 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | Health Fix.bat | | | 56 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
2 files changed, 113 insertions(+), 0 deletions(-)
diff --git a/Health Check.bat b/Health Check.bat
@@ -0,0 +1,56 @@
+ @echo off
+ CLS
+ ECHO =============================
+ ECHO Running Admin shell
+ ECHO =============================
+
+:init
+ setlocal DisableDelayedExpansion
+ set cmdInvoke=1
+ set winSysFolder=System32
+ set "batchPath=%~0"
+ for %%k in (%0) do set batchName=%%~nk
+ set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
+ setlocal EnableDelayedExpansion
+
+:checkPrivileges
+ NET FILE 1>NUL 2>NUL
+ if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
+
+:getPrivileges
+ if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
+ ECHO.
+ ECHO **************************************
+ ECHO Invoking UAC for Privilege Escalation
+ ECHO **************************************
+
+ ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
+ ECHO args = "ELEV " >> "%vbsGetPrivileges%"
+ ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
+ ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
+ ECHO Next >> "%vbsGetPrivileges%"
+
+ if '%cmdInvoke%'=='1' goto InvokeCmd
+
+ ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
+ goto ExecElevation
+
+:InvokeCmd
+ ECHO args = "/c """ + "!batchPath!" + """ " + args >> "%vbsGetPrivileges%"
+ ECHO UAC.ShellExecute "%SystemRoot%\%winSysFolder%\cmd.exe", args, "", "runas", 1 >> "%vbsGetPrivileges%"
+
+:ExecElevation
+ "%SystemRoot%\%winSysFolder%\WScript.exe" "%vbsGetPrivileges%" %*
+ exit /B
+
+:gotPrivileges
+ setlocal & cd /d %~dp0
+ if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
+
+ ::::::::::::::::::::::::::::
+ ::START
+ ::::::::::::::::::::::::::::
+ dism /online /cleanup-image /scanhealth
+ dism /online /cleanup-image /checkhealth
+ sfc /verifyonly
+PAUSE+
\ No newline at end of file
diff --git a/Health Fix.bat b/Health Fix.bat
@@ -0,0 +1,55 @@
+ @echo off
+ CLS
+ ECHO =============================
+ ECHO Running Admin shell
+ ECHO =============================
+
+:init
+ setlocal DisableDelayedExpansion
+ set cmdInvoke=1
+ set winSysFolder=System32
+ set "batchPath=%~0"
+ for %%k in (%0) do set batchName=%%~nk
+ set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
+ setlocal EnableDelayedExpansion
+
+:checkPrivileges
+ NET FILE 1>NUL 2>NUL
+ if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
+
+:getPrivileges
+ if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
+ ECHO.
+ ECHO **************************************
+ ECHO Invoking UAC for Privilege Escalation
+ ECHO **************************************
+
+ ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
+ ECHO args = "ELEV " >> "%vbsGetPrivileges%"
+ ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
+ ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
+ ECHO Next >> "%vbsGetPrivileges%"
+
+ if '%cmdInvoke%'=='1' goto InvokeCmd
+
+ ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
+ goto ExecElevation
+
+:InvokeCmd
+ ECHO args = "/c """ + "!batchPath!" + """ " + args >> "%vbsGetPrivileges%"
+ ECHO UAC.ShellExecute "%SystemRoot%\%winSysFolder%\cmd.exe", args, "", "runas", 1 >> "%vbsGetPrivileges%"
+
+:ExecElevation
+ "%SystemRoot%\%winSysFolder%\WScript.exe" "%vbsGetPrivileges%" %*
+ exit /B
+
+:gotPrivileges
+ setlocal & cd /d %~dp0
+ if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
+
+ ::::::::::::::::::::::::::::
+ ::START
+ ::::::::::::::::::::::::::::
+ dism /online /cleanup-image /restorehealth
+ sfc /scannow
+PAUSE+
\ No newline at end of file