This blogpost describes a method I have used to uninstall Flash 19, when the original source files on the local computer are missing. Although all file names and values are specific to Flash 19, the overall method is generic. So if you have problems with uninstalling a software product because of missing sources (error 1706 : -2147483647 ), continue reading! 🙂
—
During an upgrade action of Flash %old% to Flash 20.0.0.228, the majority of our desktops would not upgrade to this latest version. To find out the reason for not uninstalling the old version and installing the latest, I used the following command:
msiexec /i "install_flash_player_20_active_x.msi" /q /norestart /l*v "c:\windows\temp\install_flash_player_20_active_x.msi.log
The verbose logging led me to the conclusion the source was missing of an older Flash version. In a standard situation, the source files are located in %windir%\Installer. However, for some reason, now they were not. The source location was the ccmcache folder: C:\WINDOWS\CCMCache\%%\. This folder didn’t exist and therefor uninstallation could not take place.
Luckily, I had the original MSI’s located on my SCCM Distribution Point. I ended up creating a script with some registry modifications. The summary of the script was as follows:
- copy MSI files from network to local folder c:\windows\ccmcache\flash\
- Query the MSI Product Code of Flash 19 to check whether Flash 19 is present on the computer,
- If present, then import registry key that sets the MSI source location to c:\windows\ccmcache\flash\
- Else, skip uninstall and go to install Flash 20
- Uninstall Flash 19
- Install Flash 20
The batch file contained this commands:
md c:\windows\ccmcache\flash copy install_flash_player_19_active_x_19.0.0.226.msi c:\windows\ccmcache\flash\ REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\C71265EE9F3BB2044BCE360F095FD1D3 IF %errorlevel%==1 GOTO NOFLASH19 :FLASH19 regedit /s install_flash_player_19_active_x_19.0.0.226.reg msiexec /x "install_flash_player_19_active_x_19.0.0.226.msi" /quiet /norestart /l*v "c:\windows\temp\uninstall_flash_player_19_active_x_19.0.0.226.msi.log" @echo Flash19 exists> C:\Windows\temp\Flash19.txt GOTO FLASH20 :NOFLASH19 @echo Flash19 does not exist > C:\Windows\temp\Flash19.txt :FLASH20 msiexec /i "install_flash_player_20_active_x.msi" /q /norestart /l*v "c:\windows\temp\install_flash_player_20_active_x.msi.log"
To create the file “install_flash_player_19_active_x_19.0.0.226.reg”, it’s best to open your Registry Editor and navigate to the [HKEY_CLASSES_ROOT\Installer\Products\%ID_of_product%]. Edit 2 values that contain the source location:
- HKEY_CLASSES_ROOT\Installer\Products\C71265EE9F3BB2044BCE360F095FD1D3\SourceList\LastUsedSource
- HKEY_CLASSES_ROOT\Installer\Products\C71265EE9F3BB2044BCE360F095FD1D3\SourceList\Net\1
Export the complete registry key, and strip it until only your modified entries are left over. For example, in my case the registry file contained the following text:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Installer\Products\C71265EE9F3BB2044BCE360F095FD1D3] [HKEY_CLASSES_ROOT\Installer\Products\C71265EE9F3BB2044BCE360F095FD1D3\SourceList] "LastUsedSource"="n;1;c:\\windows\\ccmcache\\flash\\" [HKEY_CLASSES_ROOT\Installer\Products\C71265EE9F3BB2044BCE360F095FD1D3\SourceList\Net] "1"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,\ 63,00,63,00,6d,00,63,00,61,00,63,00,68,00,65,00,5c,00,66,00,6c,00,61,00,73,\ 00,68,00,5c,00,00,00
This registry file can now be used to import into every computer suffering the upgrade failure.
(*) Note that msiexec /x “install_flash_player_19_active_x_19.0.0.226.msi” is not sufficient, because Windows would still look for the original source location, rather than using the given path to the existing MSI file. You must change the source location in the registry to successfully uninstall.
MSI (s) (14:84) [08:32:10:955]: User policy value 'SearchOrder' is 'nmu' MSI (s) (14:84) [08:32:10:955]: User policy value 'DisableMedia' is 0 MSI (s) (14:84) [08:32:10:955]: Machine policy value 'AllowLockdownMedia' is 0 MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Media enabled only if package is safe. MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Looking for sourcelist for product {EE56217C-B3F9-402B-B4EC-63F090F51D3D} MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Adding {EE56217C-B3F9-402B-B4EC-63F090F51D3D}; to potential sourcelist list (pcode;disk;relpath). MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Now checking product {EE56217C-B3F9-402B-B4EC-63F090F51D3D} MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Media is enabled for product. MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Attempting to use LastUsedSource from source list. MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Trying source C:\WINDOWS\ccmcache\aa\. MSI (s) (14:84) [08:32:10:955]: Note: 1: 2203 2: C:\WINDOWS\ccmcache\aa\install_flash_player_19_active_x_19.0.0.226.msi 3: -2147287037 MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Source is invalid due to missing/inaccessible package. MSI (s) (14:84) [08:32:10:955]: Note: 1: 1706 2: -2147483647 3: install_flash_player_19_active_x_19.0.0.226.msi MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Processing net source list. MSI (s) (14:84) [08:32:10:955]: Note: 1: 1706 2: -2147483647 3: install_flash_player_19_active_x_19.0.0.226.msi MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Processing media source list. MSI (s) (14:84) [08:32:10:955]: Note: 1: 2203 2: 3: -2147287037 MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Source is invalid due to missing/inaccessible package. MSI (s) (14:84) [08:32:10:955]: Note: 1: 1706 2: -2147483647 3: install_flash_player_19_active_x_19.0.0.226.msi MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Processing URL source list. MSI (s) (14:84) [08:32:10:955]: Note: 1: 1402 2: UNKNOWN\URL 3: 2 MSI (s) (14:84) [08:32:10:955]: Note: 1: 1706 2: -2147483647 3: install_flash_player_19_active_x_19.0.0.226.msi MSI (s) (14:84) [08:32:10:955]: Note: 1: 1706 2: 3: install_flash_player_19_active_x_19.0.0.226.msi MSI (s) (14:84) [08:32:10:955]: SOURCEMGMT: Failed to resolve source MSI (s) (14:EC) [08:32:10:955]: Note: 1: 1714 2: Adobe Flash Player 20 ActiveX 3: 1612 CustomAction returned actual error code 1612 (note this may not be 100% accurate if translation happened inside sandbox) MSI (s) (14:EC) [08:32:10:955]: Product: Adobe Flash Player 20 ActiveX -- Error 1714.The older version of Adobe Flash Player 20 ActiveX cannot be removed. Contact your technical support group. System Error 1612. Error 1714.The older version of Adobe Flash Player 20 ActiveX cannot be removed. Contact your technical support group. System Error 1612.