The cached MSI file ‘C:\Windows\Installer\<name>.msi’ is missing !!! This is one error which you don’t want to see when you are trying to do a service pack upgrade or a CU update during a critical change window. Here is what the error looks like –
If you are hit with this error then there is definitely good amount of help out there, but the amount of time it takes to fix the error can vary from case to case. There is a good amount of chance that there are multiple MSIs which are missing, and you will need to take action to replace the missing MSIs before trying to re-run the SP/CU setup again.
So why this error comes up ? The short answer to this question is that the Windows Installer Cache(Under C:\Windows\Installer) on your server is compromised. This folder is used to cache important setup files, and these files are needed during situations like patch upgrades or even for uninstalls. If this cache is compromised, then you will definitely need to work with your windows admins to understand why it was compromised.
As mentioned earlier there is a good amount of chance that multiple MSIs are missing, and replacing them is time consuming.
Microsoft has a great KB article http://support.microsoft.com/kb/969052 which will explain the entire process of taking corrective actions to fix this problem, and there is a smart VB script which will tell you the details of files which are missing and it will provide you commands to take corrective action. I would definitely encourage you to read this article once.
In short here are the steps which I followed when faced this error while doing an SP2 upgrade for SQL2008 R2 –
1. Copied the FindSQLInstalls.vbs script from the KB and placed under C:\Script
2. Open a command window(As Admin) and ran the command
Cscript FindSQLInstalls.vbs %computername%_sql_install_details.txt
This created a txt file,and that file is your best bet for fixing the missing MSI errors.
3. Opened the txt file to see the amount of details it has on the missing msi files. I was interested in the Action needed area where it will provide a copy command with the msi details.Something like –
Copy “O:\SQLINSTALL\SQL2008StdRTM\x64\setup\sql_bids.msi” C:\windows\Installer\df2ee59.msi
I ran the command(As Admin) and it copied the files to the cached folder. I scrolled down the txt file to understand that there are multiple MSI files which are missing,and I had to run the copy command multiple times(I counted till 15 !).
4. Once I completed running all the copy commands which were available in the txt file, I ran SP setup again and it was successful this time.
If you have a real tight change window and you don’t want to deal with these errors, then I would recommend running the VB script in advance for your server and see if its reporting any missing MSI for your SQL Server. If there are errors, then you can fix this in advance and ensure that the upgrade will go smooth. If there are no errors after running the VBscript, then there is a level of confidence that you will not hit the missing msi errors for sure.
Thanks for reading and keep watching this space for more !
This is some good stuff. Thanks for sharing and saving time!
Thanks for the feedback ! Glad that you found this useful.
You can use my PowerShell script “Restore-InstallerFiles.ps1” which is capable to scan for the missing files, and to restore them from different sources such as local folder, shared folder or another machine which can be accessed from the target machine.
Really helpful article,
Thanks a lot for the article. I was able to resolve my issue.