Powershell: запустить msiexec с динамически созданными параметрами
В моем скрипте powershell мне нужно запустить msiexec и передать несколько параметров для его инициализации. Проблема состоит в том, что если параметр содержит пробел " ", powershell не выполняет msiexec правильно. Например команда:
msiexec /i .\Setup.msi ConnectionString="Initial Catalog=something;Integrated Security=True;Pooling=False"
Параметр ConnectionString содержит пробелы, и это приводит к тому, что msiexec выполняется неправильно, я получаю код ошибки msiexec 1639 - Неверный аргумент командной строки. Если я удаляю пробелы из строки подключения, msiexec выполняется правильно.
У кого-нибудь есть идеи, как это решить?
2 ответа
Решение
Попробуйте следующим образом:
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"'