0

I saw a exe installation package. It contains several .MSI install packages. What the install package do is installing every msi it has.

If I double-click the exe to install the product, the product will appear in ARP. But if I install a particular msi in this exe package, the product name of the msi will appear in ARP.

Let's say We are talking about product P.and P contains 3 components: A,B,C. P is a exe,and A,B,C are msi. If I install A, A will appear in ARP. But if I install P, P will appear in ARP, but none of A,B,C will appear in ARP.

I saw this thread How to find the upgrade code & productCode of an installed application in Win 7

And I checked HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall key, I can see that A,B,C are all there under their ProductCode. I also see P is also there, and it do not have a ProductCode.

So I'm confused how they control show or hidden in ARP and what the registry is for.

thanks!

Community
  • 1
  • 1
wesley
  • 41
  • 1
  • 5
  • OK.I find a web page which partly explained my question. http://community.spiceworks.com/how_to/show/2238-how-add-remove-programs-works – wesley Dec 06 '13 at 01:58

2 Answers2

1

The easiest way to control if a MSI will be listed in control panel or not is to set the property ARPSYSTEMCOMPONENT.

Most likely the P package will see this property from the command line when launching the MSIs for A, B and C.

Bogdan Mitrache
  • 10,536
  • 19
  • 34
  • thanks very much. But how the exe installation file P show itselt in ARP? It's not msi. – wesley Dec 09 '13 at 07:13
  • are you sure? It could be a bootstrapper (EXE wrapper over an MSI) that just launches an MSI. if you can post a download link for this package I can take a look and tell you if this is the case or not. – Bogdan Mitrache Dec 09 '13 at 07:27
  • see http://www.citrix.com/downloads/citrix-receiver/legacy-client-software/receiver-for-windows-34-enterprise.html. – wesley Dec 10 '13 at 02:19
  • Yes, it's an bootstrapper. it will extract to %TEMP%, you can see msis. – wesley Dec 10 '13 at 02:25
1

I'm sorry wesley but in the article you've linked is wrong. This isn't the correct way fro hiding an package in AddRemoveProgramms. This could damage the functionality of the msi. Also it is unnecessarily difficult.

The correct way ist like Bogdan Mitrache. Here a short tutorial.

  1. Get an MSI Editor like Orca or InstEd (http://instedit.com)
  2. Open the MSI and search for the Property table
  3. Make a new entry in the Property table with following values: Property:ARPSYSTEMCOMPONENT Values:1
  4. Save the MSI. Now the program shouldn't be visible in ARP.

As seen in the link of msdn link, you could use the ARPSYSTEMCOMPONENT during the call of the msi. You don't must neccessarily edit/change the MSI. You can just call the MSI the following way.

msiexec /i "yourmsi.msi" ARPSYSTEMCOMPONENT=1
XRJPK
  • 63
  • 1
  • 8