1

So I am trying to run a quite installation, with my msi, and it seems like I can easily pass a number for a parameter that I have, but I can't seem to pass in a string...I tried using single quotes ' and double quotes "

msiexec /i 'My Installer.msi' /quiet JREPATH="c:\\BLA BLA"

This and also the single quotes return this :

enter image description here

Now according to this article : https://learn.microsoft.com/en-us/windows/desktop/msi/command-line-options

it should work...

Property values that are literal strings must be enclosed in quotation marks. Include any white spaces in the string between the marks.

msiexec /i A:\Example.msi PROPERTY="Embedded White Space"

There is no problem with the MSI, I assume this because if i pass a number..it works...

msiexec /i 'My Installer.msi' /quiet JREPATH=3

LATER EDIT:

It seems that the problem appears when I have a space in the value of the parameter..for example something like the example below works :

msiexec /i "WKFS ReportGenerator.msi" /quiet JREPATH="c:\\;;BLA"

This however doesn't:

msiexec /i "WKFS ReportGenerator.msi" /quiet JREPATH="c:\\;;BLA a"

LATER EDIT 2:

These commands including spaces in the value work if using a simple cmd instead of PowerShell..

3
  • Is there a reason enclosing the MSI file name with single instead of double quotation marks? Commented Nov 23, 2018 at 5:29
  • @KlausGütter Not really...I am using PowerShell, and from my observations it doesn't make any difference if single or double quotation marks are used.. Commented Nov 23, 2018 at 7:32
  • @Teshte Updated my answer below with some information on Heath Stewart's PowerShell Modules for MSI. Commented Nov 23, 2018 at 18:58

2 Answers 2

1

If you invoke from Powershell, you should use the call operator & This should then also work with parameters enclosed in quotes:

& msiexec /i `"My Installer.msi`" /quiet JREPATH=`"c:\BLA BLA`"
Sign up to request clarification or add additional context in comments.

4 Comments

adding & does not change anything :(
You may need to escape the quotes with backtick characters. I updated my answer accordingly.
yeah...this fixed it :)
Hi Klaus, I want to alert you to the availability of the Windows Installer PowerShell Module. See my answer. Not sure if it is any good, but might be good to know about.
1

UPDATE: Since this was related to PowerShell. See Windows Installer PowerShell Module on github.com (scroll down for description, use releases tab for download). I haven't really tested it much, but it is from Heath Stewart - Microsoft Senior Software Engineer (github).

Brief, inline sample:

install-msiproduct .\example.msi -destination (join-path $env:ProgramFiles Example)

The below was written before I realized that this was related to PowerShell.


Quick Suggestion: Maybe try this command line:

msiexec.exe /i c:\setup.msi /QN /L*V "C:\Temp\msilog.log" JREPATH="c:\MyPath"

Get rid of the double \\ in the path you specify (could be enough), and use the old style /QN switch instead of the /quiet switch. Some elaboration and details below.


Silent Installation: What installer is this? Is it a vendor package? Some sort of Java application I presume? This is how to install a normal MSI file silently:

msiexec.exe /i c:\setup.msi /QN /L*V "C:\Temp\msilog.log"

Quick explanation:

/L*V "C:\Temp\msilog.log"= verbose logging
/QN = run completely silently
/i = run install sequence

msiexec.exe: There are two types of switches for msiexec.exe - the old fashioned ones such as /QN (Command-Line Options) for silent installation which matches the newer /quiet that you are using (Standard Installer Command-Line Options).

To add properties you do as you have already done, add it to the command line:

msiexec.exe /i myinstaller.msi ADDLOCAL="Program,Dictionaries" SERIALKEY="1234-1234" /qn

Some Further Links:

2 Comments

...See my updated question..It seems like the problem appears when I have a space in the value of the parameter...I also tried with /qn and the same issue appears..
also, the logging file is not generated when that window from the question appears..so there is no extra information that I can use from the logs..:(

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.