2012-01-18 10 views
1

を使ってmsiexecを実行するには、msiexecを実行し、それを初期化するためにいくつかのパラメータを渡す必要があります。パラメータにスペース文字 ""が含まれていると、powershellはmsiexecを正しく実行しないという問題があります。たとえば、コマンド: - 無効なコマンドライン引数Powershell:powershellスクリプトで動的に作成されたパラメータ

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

は、パラメータのConnectionStringにスペースが含まれており、これはmsiexecコマンドが正しく実行されていないことを引き起こし、私はmsiexecのエラーコード1639を取得します。接続文字列からスペースを削除すると、msiexecが正しく実行されます。

誰にも解決方法がありますか?このように

+0

あなたはこの試みることができる:。msiexecの/私を\のsetup.msi「のConnectionString = "初期カタログ=何かを;統合セキュリティ= True;プール= False "' –

+0

私はそれを試してみると、不幸にも、うまくいきませんが、アイデアに感謝します。 – Mikee

答えて

3

試してみてください。

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

これは、ありがとう! – Mikee

0

はこのようにそれを引用単一試してみてください:

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