We help IT Professionals succeed at work.

Publishing MSI files - there's an anomaly that I am trying to understand

95 Views
Last Modified: 2019-01-08
***Disclaimer: Publishing MSI packages will not be known to many here. In fact, apart from me and EE user Vadim Rapp, I can't remember seeing anyone here doing it ;-)
So if you are not perfectly familiar with publishing (no, it's not done per-machine), you will very probably know less about it than me, so please refrain from answering***

This "issue" is rather shared here to extend my knowledge than in order to solve a problem.
I downloaded Visio 2016 Viewer from here: https://download.microsoft.com/download/D/B/7/DB790874-4414-417F-ADF6-348B29572B9F/visioviewer_4339-1001_x86_en-us.exe
I extract the executable using 7-zip and get an MSI and a cab file and a EULA file.

If install that .msi manually, it works as expected. All users of the machine may open .vsd files.
If I publish that MSI file inside the user section of a GPO, users may install it on demand using ->appwiz.cpl ->install a program from the network and it works for them, too.
However, other users, like my administrative account cannot open .vsd files on the same machine where the user installed it, nor will visio viewer 2016 even show up in the list of installed programs. My admin user will have to open appwiz.cpl ->install programs from the network and install it again for it to work for him.

That was different with previous versions of the viewer which we used to deploy on demand as well (2007/2010). Before, the package was visible in appwiz.cpl's list and was usable by all users of that machine

Why is that? What is special about this very .msi that it behaves differently when installed manually versus installed using the GPO and the process via appwiz.cpl?
I'd simply like to learn.
Comment
Watch Question

MaheshArchitect
CERTIFIED EXPERT
Distinguished Expert 2019

Commented:
If you have published app, when user logs on and installs application, it will be installed for current user only

If application is assigned for users, it will be installed for every user automatically

actually what user application gpo does, it initialize application user specific registry and binaries for current user and make application available to that user and no changes are made in local computer specific registry
If another user logon, he must need to install / initialize published application, this is default behaviour unless you assigned application
otherwise it will defeat purpose of application publishing to users

If you assign app, it will get automatically installed for all users

The below document is self explanatory

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc738858(v=ws.10)
CERTIFIED EXPERT
Distinguished Expert 2019

Author

Commented:
Hi Mahesh:

I wrote, that I have done that before with a different MSI and it behaved differently. It worked for all users.
CERTIFIED EXPERT
Distinguished Expert 2018
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION
CERTIFIED EXPERT
Distinguished Expert 2019

Author

Commented:
Hi Cliff.

Where inside the MSI would I see how it will behave?
If I open that MSI in for example Orca, I see the property "Allusers" with a value of "1". So that can't be it.
I am trying to learn where to look, since it will be somewhere.
CERTIFIED EXPERT
Distinguished Expert 2019

Author

Commented:
Wait... gotta read https://docs.microsoft.com/en-us/windows/desktop/msi/allusers a little closer since the behavior is different for different OS'/Windows installer versions. That seems to be it.
CERTIFIED EXPERT
Distinguished Expert 2019

Author

Commented:
Hm. read and understood. Nevertheless, I see no difference to other packages, when it comes to MSI properties. Changing the properties mentioned and re-publishing has no effect at all.
So it seems, it depends on how "the package has been authored" acccording to https://docs.microsoft.com/en-us/windows/desktop/msi/msiinstallperuser - unfortunately, I don't know a way for me to determine that.

Well, I could stop here and simply test future packages for different users (as we normally do, anyway), so I will know for sure how it behaves.

By now, I have tried several MSI packages (old visio viewer 2010 and the current 7-zip 18.06) and to my surprise, both install per-user, no matter who opens appwiz.cpl - so maybe this has been different in earlier versions of windows? I am not sure when the behavior was different, although I am sure it was. Oh well... :-)

Final thoughts, anyone?
CERTIFIED EXPERT
Distinguished Expert 2019

Author

Commented:
I took one last surviving win7 machine that we have here and guess what, it had visio 2010 installed using the on demand method via appwiz.cpl - and it was indeed installed and usable per machine.

This win7 was upgraded from vista. So although this is a win7 machine, I am sure that visio 2010 viewer was installed when it was on vista, already. Vista comes with windows installer in version 4/4.5 depending on the service pack, while win7 already has v5 onboard.

Conclusion (could be): the behavior changed with windows installer 5 and 5 respects flags that 4.x does not respect, so 5 will install per-user unless the package is setup to force per-machine-installations, even when installing via appwiz.cpl.

Do you agree with that theory?
CERTIFIED EXPERT
Distinguished Expert 2019

Author

Commented:
Ok, I think I am a little wiser now and ready to close this.

I tested on a 2008 ("R1") server, which runs windows installer 4.5, which showed the same behavior as windows installer 5.0, so I will conclude that what I remembered to happen (for example visio viewer 2010 being usable for all users after one user installed it via appwiz.cpl) was maybe not even happening after all but was wrongly remembered.

So what I see here is:
-appwiz behaves the same for all packages I have here, no matter if the user is admin or not
-appwiz never asks for credentials no matter what package is used (tried current versions of chrome enterprise, visio viewer, 7-zip)
-the applications are always installed into the programs files directory, so never in user locations like %appdata%
-context menu entries are created only for the user that used appwiz
-file associations for visio are only created for the user that used appwiz
-uninstall entries in appwiz only exist for the user who used appwiz

So the suggestions were somewhat helpful and made me distrust my own memory (thanks ;-), but first of all, the question itself was not correct.
CERTIFIED EXPERT
Distinguished Expert 2019
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions