Powershell: запустить msiexec с динамически созданными параметрами - PullRequest
1 голос
/ 18 января 2012

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

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

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

У кого-нибудь есть идеи, как решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 18 января 2012

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

Start-Process -FilePath msiexec -ArgumentList / /i, .\Setup.msi, "ConnectionString='Initial Catalog=something;Integrated Security=True;Pooling=False'"  -Wait 
0 голосов
/ 18 января 2012

Попробуйте использовать одинарные кавычки так:

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