When trying to install or uninstall an application in SCCM, you get:
Exit Code 1605 (0x645)
This action is only valid for products that are currently installed.
If you are trying to install a program using SCCM, then most likely you have an application dependency of uninstalling another program, but no such program installed on the target computer. SCCM fails the install with exit code 1605, because it must successfully complete the uninstallation of the dependency before installing the application. You can fix this by having a script that detects if the product is currently installed before uninstalling it and then running the install of the new program. If you do make such a script, please share it with the forum 😉
If you are trying to uninstall a product that you have verified to be installed on the machine, but still get exit code 1605, most likely the uninstall MSI does not have the same IDs as that which was used to install the product. In other words SCCM, or rather Windows Installer doesn’t think that the uninstaller matches the application that you want to uninstall.