Why can't you uninstall multiple programs at once in Windows?

Why won't Windows allow you to uninstall or remove multiple programs at once? What is the reasoning behind this? Will it mess up an internal system?

I am not looking for how to uninstall multiple programs at once, I am simply looking for a reason why it wouldn't be an option.


Solution 1:

If you read anything about how the Windows installer system works, it's obvious they applied some ideas from transactional databases to program installation and maintenance, not to mention the .msi files themselves are a database.

There is always the question in designing any database - do you want speed or accuracy/safety? Given that installers can modify system configuration and that a mishap could render the system inoperable, safety has been given a priority over speed. One of the reasons why .msi installers are so slow is because rollback files are made for each file, etc. that will be modified, and then deleted afterwards - allowing any changes to be "rolled back" if something goes wrong in the middle of things (such as a power outage or system crash).

Now, I believe the MSI engine itself enforces installing, modifying, or removing only one program at a time - if you try to run an .msi while another is uninstalling, for example, it either won't run or will wait for the currently running uninstall to finish. Non-MSI installers may not behave this way - since they don't use the MSI engine. But because of this safety design decision, this is probably why appwiz.cpl insists on only letting one uninstaller be called at once.

CCleaner allows you to kick off uninstallers without waiting for previously running ones to finish. MSI installers will likely still not work in parallel due to the above.

Solution 2:

This only really applies to programs that use the Windows Installer system.

If a program uses their own (un)installer systems, then there's nothing stopping you from running another uninstaller at the same time.

Windows Installer limits the number of instances as to avoid conflicts being made by multiple programs while they are changing system-wide (often shared) settings and files.

Most uninstallers track what they are changing so they can roll back successfully if there's a failure. If one isn't aware of all the changes being made (by other uninstallers) then it may actually make things WORSE if it tries to roll back a failed install.

The Windows Installer system was created with the intention of being a unified system for all application developers to use (on Windows), to help avoid problems like these.

Solution 3:

Uninstallation tasks frequently modify files that are shared by multiple programs, or system files\the Registry (a partial reason for needing administrative power to do it). If multiple uninstall tasks ran at the same time, they could conflict. If you have ever had a run in with "DLL Hell", it would be the same. Other programs or Windows itself could be left in an inconsistent state.