Powershell: запустить msiexec с динамически создаваемыми параметрами

в моей powershell script, мне нужно запустить msiexec и передать несколько параметров для его инициализации. Проблема в том, что если параметр содержит пробел "", powershell не выполняет msiexec правильно. Например, команда:

msiexec /i .\Setup.msi ConnectionString="Initial Catalog=something;Integrated Security=True;Pooling=False"

Параметр ConnectionString содержит пробелы, и это приводит к тому, что msiexec выполняется неправильно, я получаю код ошибки msiexec 1639 - Недопустимый аргумент командной строки. Если я удаляю пробелы из строки подключения, msiexec выполняется правильно.

У кого-нибудь есть идея, как его решить?

Ответ 1

Попробуйте следующим образом:

Start-Process -FilePath msiexec -ArgumentList / /i, .\Setup.msi, "ConnectionString='Initial Catalog=something;Integrated Security=True;Pooling=False'"  -Wait 

Ответ 2

Попробуйте указать его так:

& msiexec.exe /i .\Setup.msi ConnectionString='"Initial Catalog=something;Integrated Security=True;Pooling=False"'