MSIインストールを自動化するにはどうすればよいですか?


11

特定の順序で実行する必要のある約20のアプリケーションがあります。スクリプトを作成して、リモートで実行できるようにしたいと考えています。

各アプリケーションには、Setup.exeとMSIがあります。

応答ファイルを使用してMSIを呼び出す単純なスクリプトが欲しいと思っていましたが、それを実行してから何年も経っています。ただし、応答ファイルの作成方法を覚えていません。

これは良い方法ですか?それとももっと簡単な方法がありますか?

回答:


17

読み込まれた質問について話します...

まず、setup.exeは無視してください。おそらくMSIを呼び出すだけです。または、それらがMSIと呼ばれる一連のものを抽出することもあります。通常、セットアップを実行するときに一時ディレクトリを監視して、その動作を把握できます。

私は常に不正行為を行い、msiexec /i path/to-install.msi /l*v /qnログを上げてインストール()の予行演習を行い、次にログを調べて、設定したいプロパティを選択し、コマンドラインから設定しました。応答ファイルが機能しなかった、または応答ファイルを作成するプロセスを実行するという面倒な価値はありませんでした。

次に、InstEditを見つけて、それをボートロードで使用しました。MSIのプロパティを編集して変換を生成し、スクリプトの引数として渡すことができます。msiexec /i path/to/installer.msi /t path/to/transform.mst 最初に試してみることをお勧めします。ほとんどすべてを行う無料バージョンがあります。

また、ここにあるすべてのスイッチについて確認することもできmsiexecます。


+1ですが、残念ながら、スイッチはすべてのMSIで動作するようには見えません。理由は調べていませんが、一部のケースでは間違いありません。
シアラン

MSIの作成方法によって異なります。特定のパラメーターIIRCを無視するように設定できるプロパティがいくつかあります。通常、Insteditを使用して変換を構築することは常に機能し、私が遭遇した唯一のエラーは通常人間によるものでした。
ピールマン


1
logメソッドがうまくいきました。プロパティが次のように表示されることに注意することが重要ですProperty(S) : PROPERTY_NAME...
Drew Chapin

5

Msiexecは必要なツールです。「静かな」ものをインストールするための-qパラメータがあります:

/ qn:ユーザーインターフェイスを表示しません。

/ qb:基本的なユーザーインターフェイスを表示します。

/ qr:インストールの最後にモーダルダイアログボックスが表示される縮小されたユーザーインターフェイスを表示します。

/ qf:完全なユーザーインターフェイスを表示し、最後にモーダルダイアログボックスを表示します。

/ qn +:最後に表示されるモーダルダイアログボックスを除いて、ユーザーインターフェイスを表示しません。

/ qb +:モーダルダイアログボックスが最後に表示される基本的なユーザーインターフェイスを表示します。

/ qb-:モーダルダイアログボックスのない基本的なユーザーインターフェイスを表示します。

コマンドラインの最後に名前付きオプション(または「プロパティ」)を指定することもできます。サポートされているプロパティは、パッケージによって異なります。たとえば、次のコマンド:

msiexec /qb /l* perl-log.txt /i ActivePerl.msi PERL_PATH=Yes PERL_EXT=Yes

... ActiveState Perlをインストールする方法です。PATHにPerl.exeを追加し、.plファイルをそれに関連付けるようにMSIパッケージに指示します。(ソース


1
開発者はmsiインストーラーで/ qオプションを無効にすることを選択できることに注意してください。
Joel Coehoorn、2011

2

ほとんどのアプリケーションはサイレントインストールできるため、スクリプトでインストールできます。各Setup.exeには多数の潜在的なスイッチが含まれる可能性があるため、ベンダーに連絡するか、Webサイトを検索する必要があります。/?、/ h / helpスイッチを使用してセットアップを開始すると、情報を取得できる場合があります。MSIファイルには任意の数のスイッチを含めることもできますが、この記事のMSIコマンドラインパラメーターにリストがあります。

プロセスをスクリプト化すると、setup.exeでインストールされ、MSIのような別のファイルを起動するアプリが実行される場合があります。MS Office XPがその一例です。これが発生すると、起動したファイルが完了したとスクリプトが判断し、次のセットアップを開始すると失敗し、すべてが南向きになります。これを回避するには、セットアップファイルをバイパスして、コマンドラインオプションを指定して実際のインストーラー(MSIの可能性があります)に直接進みます。それが不可能な場合は、何らかのタイマーの一時停止を作成する必要があります。私はインターネットで見つけたwait.exeと呼ばれる小さなユーティリティを使用していましたが、これを行う方法は無数にあります。ただし、スクリプトのポイントは、アプリケーションが正しくインストールされたことを識別して、次のインストールを開始できるようにすることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.