Ответ 1
Попробуйте следующим образом:
Start-Process -FilePath msiexec -ArgumentList / /i, .\Setup.msi, "ConnectionString='Initial Catalog=something;Integrated Security=True;Pooling=False'" -Wait
в моей powershell script, мне нужно запустить msiexec и передать несколько параметров для его инициализации. Проблема в том, что если параметр содержит пробел "", powershell не выполняет msiexec правильно. Например, команда:
msiexec /i .\Setup.msi ConnectionString="Initial Catalog=something;Integrated Security=True;Pooling=False"
Параметр ConnectionString содержит пробелы, и это приводит к тому, что msiexec выполняется неправильно, я получаю код ошибки msiexec 1639 - Недопустимый аргумент командной строки. Если я удаляю пробелы из строки подключения, msiexec выполняется правильно.
У кого-нибудь есть идея, как его решить?
Попробуйте следующим образом:
Start-Process -FilePath msiexec -ArgumentList / /i, .\Setup.msi, "ConnectionString='Initial Catalog=something;Integrated Security=True;Pooling=False'" -Wait
Попробуйте указать его так:
& msiexec.exe /i .\Setup.msi ConnectionString='"Initial Catalog=something;Integrated Security=True;Pooling=False"'