There's always a notion among people that windows is a weak OS, it needs "programs" to do stuff.
Run a command prompt, use this command (assuming windows is on C: drive)
this is the de facto solution for a wide variety of HDD problems. If your task is to identify and "relocate" bad sectors use this command instead (assuming your C: drive is NTFS and not FAT32):
/f is to fix and
/b is an ntfs specific command. I've used chkdsk /f a couple of times with well satisfactory results.
Further down, it comes down to the manufacturer when it is about handling those sectors and "avoiding" them. I assure you, not a single program can save you from this for the longer run (as data is added, those sectors eventually get used). The best advice is to get a new HDD, transfer/reinstall the OS onto it. If at all, use the primary partition for JUST the OS and move everything to another drive (that includes your temp folder, program files, app data, cache, commons).