The “Windows cannot find C:\Windows\system32\rundll32.exe” error message is common after virus infections.
It can affect any Windows computer, from Windows 10 all the way back to XP.
This rundll32 error message may appear at startup, or if you try to open certain items in Control Panel. I saw this error recently on a customer’s computer and this is how to fix it.
Why The Error Message Appears
The actual text of the error message varies slightly by Windows version but they all point to the same error – the rundll32.exe file is missing (or corrupted). This is an important Windows system file – it should be located in the Windows\System32 folder.
In most cases, the reason for its disappearance is that the file became infected by malware (e.g. a virus). Then your antivirus software or malware cleaner tried, but failed, to ‘clean’ the infected file.
In this case, the antivirus would have quarantined or deleted the file – good for removing the virus but bad for leaving you without this important system file…
The best fix is to replace the missing rundll32.exe file with a new version. There are several ways to do this depending on your Windows version, and level of experience – the easiest is shown first:
1. Use System File Checker (SFC)
System File Checker (SFC) is a utility in Windows that scans for and restores missing or corrupted Windows files. See our article on how to repair Windows using SFC.
Note: the article describes how to run a full SFC check using the /scannow option. If you had a recent virus infection this is the best option as it checks all important Windows files so it can replace any others that are missing/corrupted, not just rundll32.exe
However, Windows 10, 8, 7 and Vista users (not XP) may run a single file SFC check if you wish – by using the /scanfile option to save time. In this case the command would be:
[single space after sfc but no other spaces]
This command aims to replace only the missing rundll32 file.
2. Copy the file from a backup
Windows may have previously stored a backup of the file in one of the following locations:
Windows 10, 8, 7 and Vista – one of the subfolders within Windows\WinSxS
XP – within Windows\System32\Dllcache
These directories include a backup of many system files which can be used to replace those which are corrupted or missing. In all versions of Windows except XP, you may need to search all the WinSxS subfolders (including hidden and system files) to find the backup version of rundll32.exe if it is present.
If the backup file is available, copy it to the Windows\System32 directory and restart the computer – the error message should not reappear and Control Panel items should now open.
If the backup file is not present, try one of the following solutions.
3. Extract the file from a Windows installation disk
If you have a full Windows installation disk you can extract (copy) the original rundll32.exe file from the CD/DVD into your windows\system32 folder.
It’s quite a long and technical read but follow the steps in the guide here.
4. System Restore
I have left this until last because, if you have just cleaned up a malware infection, restoring back to an earlier date could reintroduce the malware if you don’t go far enough back in time…
However, if you are sure your system was clean on a particular date, you could perform a system restore back to that date – this should put back the original copy of the missing rundll32.exe file.
However, it will also remove any programs (and Windows updates) that were installed after the system restore date. You’d need to reinstall those programs.
The “Windows cannot find C:\Windows\system32\rundll32.exe” error message is commonly encountered after virus infection and cleaning.
However, it is often quite straightforward to fix – a better (paid) antivirus program may protect against this type of error happening in the future.