diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000..54cbaf2
--- /dev/null
+++ b/ISSUE_TEMPLATE.md
@@ -0,0 +1,100 @@
+# How To Report an Issue or Request a Feature
+
+Please read carefully this document. It will guide you to submit an [issue](#issue)
+ or [feature](feature).
+
+
+## Before starting
+
+### Step 1:
+
+**Requirements**
+
+ * [ ] Did you follow the installation steps described in
+ [README.md](https://github.com/ManuelGil/Script-Reset-Windows-Update-Tool/blob/master/README.md)?
+ * [ ] Do you use the latest version?
+
+ * [x] Complete with an X inside the brackets for the requirements met.
+
+### Step 2:
+
+**Use the GitHub issue search**
+
+ * Check if the issue or feature has already been submited.
+
+### Step 3:
+
+**Check if the issue has been fixed**
+
+ * try to reproduce it using the latest master or development branch in the
+ repository.
+
+
+## Report an Issue
+
+### Step 1:
+
+**Type the title**
+
+ * Type a title for your issue and includes the word (Issue).
+
+### Step 2:
+
+**Describe your environment**
+
+ * **OS version:** _____
+ * **Project version:** _____
+
+### Step 3:
+
+**Describe the problem**
+
+ * Type a description for your issue.
+
+### Step 4:
+
+**Steps to reproduce**
+
+ * First Step
+ * Second Step
+ * ...
+ * Expected behavior: What do you expect to happen?
+ * Actual behavior: What really happens?
+ * Reproduces how often: What percentage of the time does it reproduce?
+
+### Step 5:
+
+**Additional Information**
+
+ * Any additional information, configuration or data that might be necessary
+ to reproduce the issue.
+
+### Step 6:
+
+**Screenshot**
+
+ * Provide a screenshot that show your issue.
+
+
+## Request a Feature
+
+### Step 1:
+
+**Type the title**
+
+ * Type a title for your issue and includes the word (Feature).
+
+### Step 2:
+
+**Describe the problem**
+
+ * Type a description for your feature.
+
+### Step 3:
+
+**Additional Information**
+
+ * Why do you want this functionality?
+ * How do you expect it to work?
+
+> Thank you for collaborating with this project.
diff --git a/README.md b/README.md
index 7234f97..1f90b10 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,138 @@
-# Script-Reset-Windows-Update-Tool
+
+
Reset Windows Update Tool (Script)
+
+
+
+
This script reset the Windows Update Components.
+
+
+## Getting Started
+
+This page will help you get started with Reset Windows Update Tool (Script).
+
+
+### Requirements
+
+ * Microsoft Windows XP or later
+
+
+### Installation
+
+ * This file don't require installation
+
+
+## Changelog
+
+**10.5.3.4** (11/27/2017)
+
+ *
+
+ |
+ Requirements:
+ |
+
+ Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1
+ and Windows 10
+ |
+
+
+ |
+ Filename:
+ |
+
+
+ ResetWUEng.cmd
+
+ |
+
+
+ |
+ Changes:
+ |
+
+
+ -
+ Correction of texts in the menus
+
+ -
+ Verification of errors in the hard disk
+
+ -
+ Checking when renaming the 'SoftwareDistribution' folder
+
+
+ |
+
+
+
+**10.5.3.3** (07/23/2017)
+
+ *
+
+ |
+ Requirements:
+ |
+
+ Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1
+ and Windows 10
+ |
+
+
+ |
+ Filename:
+ |
+
+
+ ResetWUEng.cmd
+
+ |
+
+
+ |
+ Changes:
+ |
+
+
+ -
+ Compatibility with all versions of Windows 10
+ (includes technical preview)
+
+
+ |
+
+
+
+
+## Donating
+
+If you want to help me to continue this project, you might donate via PayPal.
+
+
+
+
+## Authors
+
+ * **Manuel Gil** - *Initial work* - [ManuelGil](https://github.com/ManuelGil)
+
+See also the list of [contributors](https://github.com/ManuelGil/Script-Reset-Windows-Update-Tool/contributors)
+ who participated in this project.
+
+
+## License
+
+Reset Windows Update Tool (Script) is licensed under the MIT License - see the
+ [MIT License](https://opensource.org/licenses/MIT) for details.
diff --git a/ResetWUEng.cmd b/ResetWUEng.cmd
index c00b43b..543ff3a 100644
--- a/ResetWUEng.cmd
+++ b/ResetWUEng.cmd
@@ -2,7 +2,7 @@
:: NAME: Reset Windows Update Tool.
:: DESCRIPTION: This script reset the Windows Update Components.
:: AUTHOR: Manuel Gil.
-:: VERSION: 10.5.3.2
+:: VERSION: 10.5.3.4
:: ==================================================================================
@@ -127,39 +127,21 @@ goto :eof
set family=8
:: Compatibility: Yes
set allow=Yes
- ) else if %version% EQU 10.0.10240 (
- :: Name: "Microsoft Windows 10 Threshold 1"
- set name=Microsoft Windows 10 Threshold 1
- :: Family: Windows 10
- set family=10
- :: Compatibility: Yes
- set allow=Yes
- ) else if %version% EQU 10.0.10586 (
- :: Name: "Microsoft Windows 10 Threshold 2"
- set name=Microsoft Windows 10 Threshold 2
- :: Family: Windows 10
- set family=10
- :: Compatibility: Yes
- set allow=Yes
- ) else if %version% EQU 10.0.14393 (
- :: Name: "Microsoft Windows 10 Redstone 1"
- set name=Microsoft Windows 10 Redstone 1
- :: Family: Windows 10
- set family=10
- :: Compatibility: Yes
- set allow=Yes
- ) else if %version% EQU 10.0.15063 (
- :: Name: "Microsoft Windows 10 Creators Update"
- set name=Microsoft Windows 10 Creators Update
- :: Family: Windows 10
- set family=10
- :: Compatibility: Yes
- set allow=Yes
) else (
- :: Name: "Unknown"
- set name=Unknown
- :: Compatibility: No
- set allow=No
+ ver | find "10.0." > nul
+ if %errorlevel% EQU 0 (
+ :: Name: "Microsoft Windows 10"
+ set name=Microsoft Windows 10
+ :: Family: Windows 10
+ set family=10
+ :: Compatibility: Yes
+ set allow=Yes
+ ) else (
+ :: Name: "Unknown"
+ set name=Unknown
+ :: Compatibility: No
+ set allow=No
+ )
)
call :print %name% detected . . .
@@ -171,7 +153,7 @@ goto :eof
echo. An error occurred while attempting to verify your system.
echo. Can this using a business or test version.
echo.
- echo. If not, verify that your system has the correct security fix.
+ echo. if not, verify that your system has the correct security fix.
echo.
echo.Press any key to continue . . .
@@ -219,16 +201,19 @@ goto :eof
echo. to review the code if you're unsure.
echo.
- choice /c YN /n /m "Do you want to continue with this process? (Yes/No) "
- if %errorlevel% EQU 1 goto menu
- if %errorlevel% EQU 2 goto close
-
- echo.An unexpected error has occurred.
- echo.
- echo.Press any key to continue . . .
- pause>nul
-
- goto menu
+ choice /c YN /n /m "Do you want to continue with this process? (Y/N) "
+ if %errorlevel% EQU 1 (
+ goto menu
+ ) else if %errorlevel% EQU 2 (
+ goto close
+ ) else if %errorlevel% EQU 9009 (
+ echo.
+ echo.An unexpected error has occurred.
+ echo.
+ echo.Press any key to continue . . .
+ pause>nul
+ goto menu
+ )
goto :eof
:: /*************************************************************************************/
@@ -239,22 +224,23 @@ goto :eof
:menu
call :print This tool reset the Windows Update Components.
- echo. 1. Open the system protection.
- echo. 2. Reset Windows Update Components.
- echo. 3. Delete temporary files in Windows.
- echo. 4. Open the Internet Explorer options.
- echo. 5. Scans all protected system files.
- echo. 6. Scan the image to check for corruption.
- echo. 7. Check the detected corruptions.
- echo. 8. Repair the image.
- echo. 9. Clean up the superseded components.
- echo. 10. Change invalid values in the Registry.
- echo. 11. Reset the Winsock settings.
- echo. 12. Search updates.
- echo. 13. Explore other local solutions.
- echo. 14. Explore other online solutions.
- echo. 15. Download Diagnostic.
- echo. 16. Restart your PC.
+ echo. 1. Opens the system protection.
+ echo. 2. Resets the Windows Update Components.
+ echo. 3. Deletes the temporary files in Windows.
+ echo. 4. Opens the Internet Explorer options.
+ echo. 5. Runs Chkdsk on the Windows partition.
+ echo. 6. Runs the System File Checker tool.
+ echo. 7. Scans the image for component store corruption.
+ echo. 8. Checks whether the image has been flagged as corrupted.
+ echo. 9. Performs repair operations automatically.
+ echo. 10. Cleans up the superseded components.
+ echo. 11. Deletes any incorrect registry values.
+ echo. 12. Repairs/Resets Winsock settings.
+ echo. 13. Searches Windows updates.
+ echo. 14. Explores other local solutions.
+ echo. 15. Explores other online solutions.
+ echo. 16. Downloads the Diagnostic Tools.
+ echo. 17. Restarts your PC.
echo.
echo. ?. Help. 0. Close.
echo.
@@ -272,28 +258,30 @@ goto :eof
) else if %option% EQU 4 (
call :iOptions
) else if %option% EQU 5 (
- call :sfc
+ call :chkdsk
) else if %option% EQU 6 (
- call :dism1
+ call :sfc
) else if %option% EQU 7 (
- call :dism2
+ call :dism1
) else if %option% EQU 8 (
- call :dism3
+ call :dism2
) else if %option% EQU 9 (
- call :dism4
+ call :dism3
) else if %option% EQU 10 (
- call :regedit
+ call :dism4
) else if %option% EQU 11 (
- call :winsock
+ call :regedit
) else if %option% EQU 12 (
- call :updates
+ call :winsock
) else if %option% EQU 13 (
- call :local
+ call :updates
) else if %option% EQU 14 (
- call :online
+ call :local
) else if %option% EQU 15 (
- call :diagnostic
+ call :online
) else if %option% EQU 16 (
+ call :diagnostic
+ ) else if %option% EQU 17 (
call :restart
) else if %option% EQU ? (
call :help
@@ -350,12 +338,12 @@ goto :eof
call :print Checking the services status.
sc query bits | findstr /I /C:"STOPPED"
- If %errorlevel% NEQ 0 (
+ if %errorlevel% NEQ 0 (
echo. Failed to stop the BITS service.
echo.
echo.Press any key to continue . . .
pause>nul
- goto close
+ goto :eof
)
call :print Checking the services status.
@@ -366,7 +354,7 @@ goto :eof
echo.
echo.Press any key to continue . . .
pause>nul
- goto close
+ goto :eof
)
call :print Checking the services status.
@@ -379,19 +367,19 @@ goto :eof
echo.
echo.Press any key to continue . . .
pause>nul
- if %family% NEQ 6 goto close
+ if %family% NEQ 6 goto :eof
)
)
call :print Checking the services status.
sc query cryptsvc | findstr /I /C:"STOPPED"
- If %errorlevel% NEQ 0 (
+ if %errorlevel% NEQ 0 (
echo. Failed to stop the Cryptographic Services service.
echo.
echo.Press any key to continue . . .
pause>nul
- goto close
+ goto :eof
)
:: ----- Delete the qmgr*.dat files -----
@@ -428,6 +416,14 @@ goto :eof
if exist "%SYSTEMROOT%\SoftwareDistribution" (
attrib -r -s -h /s /d "%SYSTEMROOT%\SoftwareDistribution"
ren "%SYSTEMROOT%\SoftwareDistribution" SoftwareDistribution.bak
+ if exist "%SYSTEMROOT%\SoftwareDistribution" (
+ echo.
+ echo. Failed to rename the SoftwareDistribution folder.
+ echo.
+ echo.Press any key to continue . . .
+ pause>nul
+ goto :eof
+ )
)
if exist "%SYSTEMROOT%\system32\Catroot2" (
attrib -r -s -h /s /d "%SYSTEMROOT%\system32\Catroot2"
@@ -447,7 +443,7 @@ goto :eof
:: ----- Reregister the BITS files and the Windows Update files -----
call :print Reregister the BITS files and the Windows Update files.
- cd /d %WINDIR%\system32
+ cd /d %SYSTEMROOT%\system32
regsvr32.exe /s atl.dll
regsvr32.exe /s urlmon.dll
regsvr32.exe /s mshtml.dll
@@ -533,7 +529,7 @@ goto :eof
:: void temp();
:: /*************************************************************************************/
:temp
- call :print Deleting temporary files in Windows.
+ call :print Deleting the temporary files in Windows.
del /s /f /q "%TEMP%\*.*"
del /s /f /q "%SYSTEMROOT%\Temp\*.*"
@@ -556,11 +552,34 @@ goto :eof
:: /*************************************************************************************/
+:: Check and repair errors on the disk.
+:: void chkdsk();
+:: /*************************************************************************************/
+:chkdsk
+ call :print Check the file system and file system metadata of a volume for logical and physical errors (CHKDSK.exe).
+
+ chkdsk %SYSTEMDRIVE% /f /r
+
+ if %errorlevel% EQU 0 (
+ echo.
+ echo.The operation completed successfully.
+ ) else (
+ echo.
+ echo.An error occurred during operation.
+ )
+
+ echo.
+ echo.Press any key to continue . . .
+ pause>nul
+goto :eof
+:: /*************************************************************************************/
+
+
:: Scans all protected system files.
:: void sfc();
:: /*************************************************************************************/
:sfc
- call :print Scans all protected system files.
+ call :print Scan your system files and to repair missing or corrupted system files (SFC.exe).
if %family% NEQ 5 (
sfc /scannow
@@ -568,7 +587,7 @@ goto :eof
echo.Sorry, this option is not available on this Operative System.
)
- If %errorlevel% EQU 0 (
+ if %errorlevel% EQU 0 (
echo.
echo.The operation completed successfully.
) else (
@@ -587,7 +606,7 @@ goto :eof
:: void dism1();
:: /*************************************************************************************/
:dism1
- call :print Scanning the image to check for corruption.
+ call :print Scan the image for component store corruption (The DISM /ScanHealth argument).
if %family% EQU 8 (
Dism.exe /Online /Cleanup-Image /ScanHealth
@@ -597,7 +616,7 @@ goto :eof
echo.Sorry, this option is not available on this Operative System.
)
- If %errorlevel% EQU 0 (
+ if %errorlevel% EQU 0 (
echo.
echo.The operation completed successfully.
) else (
@@ -616,7 +635,7 @@ goto :eof
:: void dism2();
:: /*************************************************************************************/
:dism2
- call :print Checking the detected corruptions.
+ call :print Check whether the image has been flagged as corrupted by a failed process and whether the corruption can be repaired (The DISM /CheckHealth argument).
if %family% EQU 8 (
Dism.exe /Online /Cleanup-Image /CheckHealth
@@ -626,7 +645,7 @@ goto :eof
echo.Sorry, this option is not available on this Operative System.
)
- If %errorlevel% EQU 0 (
+ if %errorlevel% EQU 0 (
echo.
echo.The operation completed successfully.
) else (
@@ -641,11 +660,11 @@ goto :eof
:: /*************************************************************************************/
-:: Repair the image.
+:: Repair the Windows image.
:: void dism3();
:: /*************************************************************************************/
:dism3
- call :print Repairing the image.
+ call :print Scan the image for component store corruption, and then perform repair operations automatically (The DISM /RestoreHealth argument).
if %family% EQU 8 (
Dism.exe /Online /Cleanup-Image /RestoreHealth
@@ -655,7 +674,7 @@ goto :eof
echo.Sorry, this option is not available on this Operative System.
)
- If %errorlevel% EQU 0 (
+ if %errorlevel% EQU 0 (
echo.
echo.The operation completed successfully.
) else (
@@ -670,11 +689,11 @@ goto :eof
:: /*************************************************************************************/
-:: Clean up the superseded components .
+:: Clean up the superseded components.
:: void dism4();
:: /*************************************************************************************/
:dism4
- call :print Clean up the superseded components.
+ call :print Clean up the superseded components and reduce the size of the component store (The DISM /StartComponentCleanup argument).
if %family% EQU 8 (
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
@@ -684,7 +703,7 @@ goto :eof
echo.Sorry, this option is not available on this Operative System.
)
- If %errorlevel% EQU 0 (
+ if %errorlevel% EQU 0 (
echo.
echo.The operation completed successfully.
) else (
@@ -703,12 +722,12 @@ goto :eof
:: void regedit();
:: /*************************************************************************************/
:regedit
- for /f "tokens=1-5 delims=/, " %%a in ("%date%") do (
+ for /f "tokens=1-5 delims=/., " %%a in ("%date%") do (
set now=%%a%%b%%c%%d%time:~0,2%%time:~3,2%
)
:: ----- Create a backup of the Registry -----
- call :print Making a backup copy of the Registry in: %USERPROFILE%\Desktop\Backup%now%.reg
+ call :print Making a backup of the Registry in: %USERPROFILE%\Desktop\Backup%now%.reg
if exist "%USERPROFILE%\Desktop\Backup%now%.reg" (
echo.An unexpected error has occurred.
@@ -724,7 +743,7 @@ goto :eof
)
:: ----- Checking backup -----
- call :print Checking the backup copy.
+ call :print Checking the backup.
if not exist "%USERPROFILE%\Desktop\Backup%now%.reg" (
echo.An unexpected error has occurred.
@@ -742,12 +761,40 @@ goto :eof
:: ----- Delete keys in the Registry -----
call :print Deleting values in the Registry.
- reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f
+ reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" /f
+ reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate" /f
+ reg delete "HKCU\Software\Microsoft\WindowsSelfHost" /f
+ reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate" /f
+ reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate" /f
+ reg delete "HKLM\Software\Microsoft\WindowsSelfHost" /f
+ reg delete "HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate" /f
+
reg delete "HKLM\COMPONENTS\PendingXmlIdentifier" /f
reg delete "HKLM\COMPONENTS\NextQueueEntryIndex" /f
reg delete "HKLM\COMPONENTS\AdvancedInstallersNeedResolving" /f
- reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" /f
+ reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v ResetClient /f
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v ResetDataStoreReason /f
+
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientIDValidation /f
+
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUState /f
+
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v LastWaitTimeout /f
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionstartTime /f
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v NextDetectionTime /f
+
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" /f
+
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results" /f
+
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Reporting" /v SamplingValue /f
+ reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services" /v ReregisterAuthorizationCab /f
+
:: ----- Add keys in the Registry -----
call :print Adding values in the Registry.
@@ -925,7 +972,7 @@ goto :eof
:: void help();
:: /*************************************************************************************/
:help
- start %~dp0Help.chm
+ start %~dp0HELP.chm
goto :eof
:: /*************************************************************************************/