Exetools  

Go Back   Exetools > General > General Discussion

Notices

Reply
 
Thread Tools Display Modes
  #1  
Old 01-20-2005, 19:19
Kerlingen
 
Posts: n/a
How to disable MSI Windows Installer auto-repair ?

You probably all know the "MSI" installers from Microsoft, which you need to use in order to get your "Windows compatible" logo for your software.

I installed some software coming as MSI installation package. It created me 8 shortcuts directly in the "Start Menu". Since I didn't want to have the shortcuts there, I created a subfolder in my start menu and moved the shortcuts there. When I started the program, the MSI installer started, asked me to insert the CD and when I did, it "repaired" the "damaged" software by installing it all again (copy 480 MB from CD and create 8 new shortcuts directly in the start menu).

I played this stupid game several times and it turned out that as soon as you delete or move any shortcut in the start menu the software is considered as "damaged" and must be "repaired". I can cancel the installer as soon as it starts up, but then it tries again and again to start up and the software never launches.

Since not all MSI installed software has this problem, my question is if anybody knows how to disable this useless function since I don't want half of my screen filled with "visit website", "show help", "show readme", "show tutorial", "uninstall", "search for updates", etc. shortcuts every time when I open my start menu. (marking them as "hidden" is no possibility since the MSI installer considers this as "damaged" too)

Last edited by Kerlingen; 01-20-2005 at 20:30.
Reply With Quote
  #2  
Old 01-21-2005, 00:09
NimDa2k's Avatar
NimDa2k NimDa2k is offline
Friend
 
Join Date: Jan 2005
Posts: 124
Rept. Given: 3
Rept. Rcvd 2 Times in 1 Post
Thanks Given: 1
Thanks Rcvd at 8 Times in 5 Posts
NimDa2k Reputation: 3
Exclamation Extract

i suggest Use MSI files extraction utility 0.2 for extract files from Setup file and Install It Manually
Attached Files
File Type: zip m_extract.zip (45.1 KB, 22 views)
Reply With Quote
  #3  
Old 01-21-2005, 01:46
Kerlingen
 
Posts: n/a
Good idea NimDa2k, but I forgot to be more specifield in my first post. I can't yet download attachements, but I have something called MsiEx 0.2 too, so I think you have attached the same file.

The problem is not to get the files, but to install the program. All of the program's files are uncompressed on the CD and the MSI file contains no other files and is just 2.3 MB big. The problem is that the program doesn't run without proper installation, which sets up many registry entries, installs some video codecs, a kernel mode driver and does the license activation over internet. (btw. the software I have the problems with is the driver CD for a video capture board) I don't want to call the "hotline", since I doubt that they will tell me something else than "don't delete the shortcuts" and I would have to pay at least 20$ for it.
Reply With Quote
  #4  
Old 01-21-2005, 09:53
gabri3l's Avatar
gabri3l gabri3l is offline
Parity Error 0x0FF2131D
 
Join Date: Aug 2003
Location: Eastern Shore
Posts: 118
Rept. Given: 0
Rept. Rcvd 5 Times in 1 Post
Thanks Given: 8
Thanks Rcvd at 21 Times in 10 Posts
gabri3l Reputation: 5
I believe your problem is related to what is called a KEYPATH in the MSI. Each component in an MSI requires a Keypath. In your case the shortcut seems to be set as a keyfile. The Windows Installer Service is trying to verify the availability of the keypath element and if it cannot find it it will Repair itself. This will hopefully fix your problem.

First check your event log. In XP it's Start-> Performance and Maintenance -> Administrative Tools-> Event Viewer And for NT Start -> Settings -> Control Panel -> Administrative Tools -> Event Viewer.

When you have your event viewer open select Application Log and find the application that is giving you trouble. An easier way can be to right click on application log and clear it. Then run the program and let it give you the repair error. Then check the log. doubleclick on the logged event and you should see something to the following
Event ID: 1004
Description: Detection of product "{4ED0C75A-8BC5-4520-B9C7-76968FD5677F}", feature "Test", component "{A7B09747-E527-4E1B-AE51-323CD636210F}" failed. The resource "C:\Progam Files\InstallSite\test.exe" does not exist.

The {A7B09747-E527-4E1B-AE51-323CD636210F} listed after component is called the Component Id. Copy that down. You can now close event viewer.

Okay, now you need to find Orca. It is included with the Windows Installer SDK. Or google for Orca.msi and look a few pages in to find a link. When you have Orca use it to open up your MSI install file.
On the left hand side of the program you see a list of tables. Scroll down and select "Component". You'll now see, in the right side, a table of components and their information including compenent id's. Find the component id's that were giving you trouble and select the KEYPATH cell. Delete the information in the keypath cell for all the component ids that were giving you trouble. Save your MSI. Now uninstall and reinstall the software using the new MSI. You should not have anymore problems.

I hope that fixed your problem. If not: Sorry for such a long post.

Last edited by gabri3l; 01-21-2005 at 10:50.
Reply With Quote
  #5  
Old 01-21-2005, 19:13
Kerlingen
 
Posts: n/a
@gabri3l:

I did as you suggested. The Event Log contained the warning messages telling me that "C:\Documents and Settings\All Users\Start Menu\..." was not available. Then I copied the Component Id, installed ORCA.MSI from the PlatformSDK, opened the installation MSI and found the Component Id in the component section. But the KeyPath is an empty value. I can't delete anything from it since there is nothing in it. I guess this is since the shortcuts are not already packed into the MSI, but only created at installation time.

Then I tried to remove the whole row. The MSI gave me an internal error when I started it. I searched for other occurences of the Component Id, but I didn't find it anywhere else.

Then I searched for the names of the Start Menu entries and found them in the Shortcuts category. I deleted them all and saved the MSI file and installed the software again. This time I had no shortcuts in my Start Menu. I created a shortcut on my own and started the software. This time I was in an endless loop of "repairing" the "damaged" software. Which I only could stop by "burning" them with LordPE, since my Task manager didn't allow me to terminate the processes.

Then I tried to find some occurences of the files the shortcuts pointed to, but I didn't find anything which I would classify as "this is it" (I don't know much about MSI).

How does the auto-repair feature of MSI file work anyway? If I execute "TEST.EXE", does Windows check if it is a MSI installed application and launch the installer to check it or must "TEST.EXE" call some MSI APIs itself to check if it needs to be repaired?

I bet disabling this would decrease startup time of MSI installed software.
Reply With Quote
  #6  
Old 01-21-2005, 20:16
ee45678 ee45678 is offline
Friend
 
Join Date: Jan 2005
Posts: 27
Rept. Given: 0
Rept. Rcvd 0 Times in 0 Posts
Thanks Given: 0
Thanks Rcvd at 0 Times in 0 Posts
ee45678 Reputation: 0
Try this:

http://desktopengineertraining.com/msirestrictrun

They also have a few other tools for use with MSI files that you may find useful.
Reply With Quote
  #7  
Old 01-22-2005, 03:38
gabri3l's Avatar
gabri3l gabri3l is offline
Parity Error 0x0FF2131D
 
Join Date: Aug 2003
Location: Eastern Shore
Posts: 118
Rept. Given: 0
Rept. Rcvd 5 Times in 1 Post
Thanks Given: 8
Thanks Rcvd at 21 Times in 10 Posts
gabri3l Reputation: 5
It's hard to diagnose the problem without the software in front of me, but you can try opening the MSI in orca and selecting the PROPERTY cell on the left hand side. Then in the cells to the right add a new row. In the new row under property type DISABLEADVTSHORTCUTS and set the value cell to 1. Then install the software.

The problem is that when a program using MSI installs it registers itself with Windows Installer Service. The service then controls certain program properties. You cannot stop a certain program from using the Repair option. However, you can disable the service all together by opening up your registry and going to HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer (you may have to create this folder) and Create a new DWORD value, or modify the existing value, called "DisableMSI" and set it according to 2 = disabled. Exit your registry, you may need to restart. This will almost definately fix your repairing issues. The only problem you will face is that this disables the MSI service for all applications.

Last edited by gabri3l; 01-22-2005 at 08:34.
Reply With Quote
  #8  
Old 01-23-2005, 01:50
Kerlingen
 
Posts: n/a
@gabri3l:

Thank you for all your work you invested in my problem. Finally the DISABLEADVTSHORTCUTS trick worked and solved my problem. Now I can open my start menu again without falling off my chair. :-)

@ee45678:

Thank you for the link, but I didn't find anything which would help me in my current situation there. But perhaps I will need it later again.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Windows Update Disable and Enable mdj General Discussion 0 03-05-2018 23:45


All times are GMT +8. The time now is 17:00.


Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX, chessgod101
( 1998 - 2024 )