入門 - powershell 実行



PowerShellを使用してインストーラを実行する方法を教えてください。 (1)

手動で行うと、プロセスを通過するときに選択できる構成オプションがあるソフトウェアをインストールしようとしています。 私はPowerShellを使用してこれを自動化する方法を見つけようとしていますが、それらの構成オプションを設定する方法については行き詰っています。 インストーラーの.exeでstart-processコマンドを実行する必要があると思いますが、そこからどこに行くべきかわかりません。 start-processコマンドのパラメーターを使用して、必要な構成を渡すことはできますか?


更新 setup.exe ファイルの インストール 構成 、および ファイル抽出の 処理方法に関する情報が記載された下のリンク。

更新 :github.comの Windows Installer PowerShellモジュール を参照してください(説明についてはスクロールダウンし 、ダウンロードに リリースタブを 使用してください)。 あまりテストしていませんが、Microsoftシニアソフトウェアエンジニア( github )の Heath Stewartによるもの です。

そのインストーラーをざっと見てみましたが、簡単には見つかりませんでした。 基本的に、インストーラーはWindowsインストーラーデータベース(MSI)または他の何か -通常は何らかの種類の setup.exe です。 MSIデータベースは、setup.exeでラップすることもできます。

レガシースタイルインストーラーの 大規模な展開の 一般的なプラクティスは 、アプリケーションリパッケージャーツール でレガシーインストールをキャプチャし、インストールに使用するMSIファイルをコンパイルすることです(インストーラーを古い形式から最新のMSIに効果的に変換することですフォーマット)。 これは、Windowsとセットアップの十分な理解を必要とする専門的なタスクです。 通常、大企業では非常に大規模なソフトウェア配布が行われます。 あなたが大企業にいるならば、あなたが言及したようなパッケージソフトウェアに専念するチームがあるかもしれません 。 経営陣に確認してください。 セットアップがMSIの場合、同じチームが仕様に応じてそれを変更することもできます。

インストーラーEXEに関しては 。 コマンドラインから setup.exe /a を実行し、「ネットワークインストールポイント」(管理者インストール)にファイルを抽出するオプションが表示されるかどうかを確認してください。 次に、setup.exeにラップされたMSIファイルを処理します。 setup.exe /x うまくいかない場合は、 setup.exe /x または setup.exe /extract も試してください。

Windowsインストーラーに は、コマンドラインで設定された PUBLICプロパティ (大文字)でインストールをカスタマイズしたり、 トランスフォーム (ベンダーファイルに大幅な変更を適用するWindowsインストーラーのメカニズム-取得する部分的なデータベース)を介してインストールをカスタマイズできる組み込み機能があります実行時にベンダーからインストールデータベースに適用されます)。

一般に、MSI以外のレガシーインストーラーテクノロジーは、インストール設定をカスタマイズするための信頼性の高い方法が少なく、それらが存在する場合はアドホックになる傾向があります。 特に、サイレント実行およびアンインストールは、欠落している機能または実行が不十分な機能である可能性があります。 通常、これらのインストールはすべてEXE形式でラップされ、それらを生成するために使用される多くのツールがあります。それぞれに独自の癖と機能があります。

言い換えれば、それはすべてインストーラーの実装に依存します。 その setup.exe /asetup.exe /a 、回答を新しい情報で更新します(コメントを追加しすぎないでください-確認します)。

PowerShellの使用に関して 。 これまでのところ、完全に正直に言うと、PowerShellを展開に使用したことはありません。 PowerShellを使用してインストールする方法の基本的な説明は次のとおりです https://kevinmarquette.github.io/2016-10-21-powershell-installing-msi-files/ : https://kevinmarquette.github.io/2016-10-21-powershell-installing-msi-files/

また、PowerShellからMSIファイルの自動化を呼び出すこともできますが、これはあなたが尋ねたものとは関係ないと思いますが、変換ファイルを変更するためのクイックリンクはこちらです: http://www.itninja.com/question/ps-how-to-edit-a-mst-file : http://www.itninja.com/question/ps-how-to-edit-a-mst-file

MSIファイルをインストールする通常の方法は、Windowsの組み込みmsiexec.exeコマンドラインを使用することです。 ソフトウェアをインストールするための基本的な msiexec.exeコマンドライン は次のとおりです。

msiexec.exe /I "C:\Your.msi" /QN /L*V "C:\msilog.log" TRANSFORMS="C:\1031.mst;C:\My.mst"

クイックパラメータ説明:

/I = run install sequence
/QN = run completely silently
/L*V "C:\msilog.log" = verbose logging
TRANSFORMS="C:\1031.mst;C:\My.mst" = Apply transforms 1031.mst and My.mst (see below).

変換とは何ですか? ここでの説明: MSIファイルをより有効に使用する方法

Advanced Installerに は、 msiexec.exeコマンドライン に関する一般的なページがあります。 そして 、MSDNにあるMicrosoftのmsiexec.exeのドキュメント はこちらです。

いくつかのリンク:

  • おそらく、 Michael Urmanの 回答をご覧ください: InstallShield setup.exeの内容をプログラムで抽出し ます。 これは、InstallshieldパッケージEXEファイル専用です。
  • Installshield setup.exeコマンド (いくつかのサンプルコマンドラインの一般的な参照-ドキュメントの終わりに向かって、コマンドラインは正しくないように見えますが、最初のものは大丈夫に見えます。リンクしているのでお知らせください)。 ここ に公式のInstallshieldヘルプドキュメントがあります
  • Wise setup.exeコマンド -Wiseは使用できなくなりましたが、セットアップが古い場合でもWiseでパッケージ化できます。
  • 高度なインストーラーの標準コマンドライン 。 このツールのセットアップは、明らかに setup.exe /x または setup.exe /extract ます。 完全なリストについては、リンクを参照してください。
  • また、exeファイル内の非表示のスイッチを見つけるために使用される「 サイレントスイッチファインダー 」ツール(展開用)がありましたが、virustotal.comスキャンに失敗したため、リンクしません。 ファイルのヘッダーをビットレベルでスキャンするなど、エキゾチックなものを使用しているのか、誤ってマルウェアとしてフラグ付けされている奇妙なものを使用しているのでしょうか? どちらにしても、私が使うツールではありません。
  • そして最後に: http://unattended.sourceforge.net/installers.php : http://unattended.sourceforge.net/installers.php このリンクは悪くありません。上記のツールのいくつかと、他のいくつかのツール、および使用される最も一般的なスイッチを示しています。 私はテストしていませんが、大丈夫に見えます。
  • また、EXEファイルをパッケージ化して配信する独自​​の方法を持つ他の展開ツールがあります。これはジャングルになる可能性があります。 このようなツールのリストにリンクを追加することもできますが、それは混乱を招くだけかもしれません。 最初に上記の内容をお試しください。
  • 同様に役立つ可能性のある一般的な回答を次に示します 。EXEからMSIを抽出する




install