“錯誤1624,應(yīng)用轉(zhuǎn)換時的錯誤。請驗證指定的轉(zhuǎn)換路徑是否有效”的解決思路
今天某網(wǎng)友電腦上安裝3ds MAX 2021時,安裝失敗,提示:
安裝失敗 - 錯誤 1624
應(yīng)用轉(zhuǎn)換時的錯誤。請驗證指定的的轉(zhuǎn)換路徑是否有效。

運行%temp%查看臨時目錄最新的log日志,發(fā)現(xiàn)是安裝Autodesk Genuine Service.msi時出現(xiàn)錯誤1624。在安裝包目錄里找到這個msi打開安裝,一樣的錯誤提示。

log日志里顯示:
Database: C:\Autodesk\Autodesk_3ds_Max_2021_EFGJKPS_Win_64bit\x86\AGS\Autodesk Genuine Service.mst. Cannot open database file. System error -2147287038
無法打開Autodesk Genuine Service.mst數(shù)據(jù)庫文件,安裝包有問題?但問題是正常的安裝包這個路徑下也沒mst文件。

遠程前,網(wǎng)友已經(jīng)用過Windows Installer Clean Up刪除殘留,但沒有解決。 procmon監(jiān)控msi安裝過程,發(fā)現(xiàn)可疑事件。

打開對應(yīng)注冊表,正好是Autodesk Genuine Service。

那為什么Windows Installer Clean Up刪除不了這個?后面我又用了我制作的安裝源錯誤檢查工具。

確實檢測到Autodesk Genuine Service有問題,但是用批處理調(diào)用msizap.exe刪除時卻刪除不了。
根據(jù)我專欄另一篇文章《錯誤1402,無法打開注冊表項UNKNOWN\Components故障原因,及Install Clean Up原理剖析》結(jié)尾,也能從上圖ProductCode逆推出注冊表項42600A459FE32A94299A2744AEDD2021。
一般只需要記住42600A45這個是ProductCode第一項54A00624反方向的結(jié)果就行了
然后在下面這些位置找這個注冊表項(根據(jù)MsiEnumProducts函數(shù)枚舉的注冊表):
HKEY_CLASSES_ROOT\Installer\Products
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Installer\Products

找到問題注冊表項后刪除就行了。網(wǎng)友電腦在手動刪除42600A459FE32A94299A2744AEDD2021后,問題成功解決!

那回過頭來,為什么網(wǎng)友用Windows Installer Clean Up刪除不了這個殘留?
我的安裝源錯誤檢查工具也刪除不了。
我虛擬機導(dǎo)入網(wǎng)友電腦上的42600A459FE32A94299A2744AEDD2021注冊表,調(diào)用msizap.exe也刪除不了,難不成不支持HKCU的殘留刪除?
用Windows Installer Clean Up修改版也刪除失敗。
用Windows Installer Clean Up修改版刪除VC運行庫等,能正常刪除。
最后安裝了原版的Windows Installer Clean Up刪除成功。
然后我又導(dǎo)入注冊表,這回修改版也刪除成功了,直接調(diào)用msizap.exe也刪除成功。
也就是說安裝原版Windows Installer Clean Up的過程中,創(chuàng)建了某些文件或注冊表項,決定了msizap.exe能不能刪除HKEY_CURRENT_USER\SOFTWARE\Microsoft\Installer\Products里的殘留。
用Total Uninstall監(jiān)控原版的Windows Installer Clean Up安裝過程,把創(chuàng)建的文件和注冊表子項刪除了。結(jié)局修改版還是能正常刪除HKCU殘留。
用Procmon分析安裝過程的Write File和RegSetValue事件,沒發(fā)現(xiàn)可疑。
用Procmon分析安裝過程的RegCreateKey事件,發(fā)現(xiàn)可疑事件:

安裝過程創(chuàng)建了HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData里的用戶SID子項。
經(jīng)過測試,就是這個SID子項決定了msizap.exe是否刪除HKCU里的殘留。網(wǎng)友電腦安裝的也是原版的Windows Installer Clean Up,但是這個SID子項被刪了,所以導(dǎo)致這個殘留刪除不了。