EXEセットアップのMSIを抽出して、ネットワーク経由で公開したいと思います。
たとえば、Universal Extractorを使用しますが、Javaランタイム環境では機能しません。
EXEセットアップのMSIを抽出して、ネットワーク経由で公開したいと思います。
たとえば、Universal Extractorを使用しますが、Javaランタイム環境では機能しません。
InstallShield MSIベースのプロジェクトの場合、次のことが機能することがわかりました。
setup.exe /s /x /b"C:\FolderInWhichMSIWillBeExtracted" /v"/qn"
このコマンドを実行すると、自由に指定できるディレクトリにMSIが抽出され、製品のアンインストールがサイレントに失敗します。
コマンドラインは基本的に、setup.exeに製品のアンインストールを試行し(/ x)、サイレントにアンインストールするように指示します(/ s)。その間、MSIを特定の場所(/ b)に抽出する必要があります。
/ vコマンドは、引数をWindowsインストーラーに渡します。この場合は/qn引数です。/ qn引数は、インストーラーのGUI出力を無効にします。
クイックリスト:一般的な種類の
setup.exe
ファイルがいくつかあります。これが「ショートリスト」に含まれるものの一部です。詳細はこちら (下に向かって)。
Setup.exe抽出:(試してみるさまざまなフレーバー)
setup.exe /a setup.exe /s /extract_all setup.exe /s /extract_all:[path] setup.exe /stage_only setup.exe /extract "C:\My work" setup.exe /x setup.exe /x [path] setup.exe /s /x /b"C:\FolderInWhichMSIWillBeExtracted" /v"/qn" dark.exe -x outputfolder setup.exe
dark.exe
はWiXバイナリです-WiXをインストールしてWiXsetup.exeを抽出します(現時点では)。詳細(セクション4)。
いつもあります:
setup.exe /?
MSI抽出: msiexec.exe
/File.msi
抽出:
msiexec /a File.msi msiexec /a File.msi TARGETDIR=C:\MyInstallPoint /qn
多くのセットアップツール:考えられるさまざまな種類のsetup.exe
ファイルをすべて網羅することは不可能です。それらは、あらゆる種類の異なるコマンドラインスイッチを備えている可能性があります。使用できるツールはたくさんあります。(non-MSI
、、、、MSI
など...)admin-tools
。multi-platform
NSIS / Inno:Inno Setup
一般的な、抽出を困難にするような無料のツール(非公式のアンパッカー、私が試したものではなく、virustotal.comが実行)。一方NSIS
、標準のアーカイブソフトウェア(7-zipなど)が開いて抽出できる通常のアーカイブを使用しているようです。
一般的な秘訣:1つの秘訣は、を起動して
setup.exe
で調べることです。もう1つのトリックは、または同様のアーカイブツールを使用して、フォーマットを読み取れるかどうかを確認することです。によって成功を主張する人もいます。私が使っているテクニックではありません。-セットアップの実行後にコンピューターに加えられた変更をキャプチャしてクリーンアップする-特別なツールが必要です(無料のツールのほとんどは行き来します。AdvancedInstallerArchitectとAdminStudioは大きなプレーヤーです)。1)
system's temp folder for extracted files
2)
7-Zip, WinRAR, WinZip
3)
opening the setup.exe in Visual Studio
4)
And there is obviously application repackaging
更新:インストーラーの作成に使用されるさまざまな展開ツールの簡単なプレゼンテーション: Windowsインストーラーの作成方法(包括的なリンク)。
また、現在(2018年)現在最も使用されている開発ツールのより単純なリストビューにより、読みやすく、概要を把握できます。
そして保管のために:
- 抽出されたセットアップファイルからMSIを作成します(下に向かって)
- Installshield 2013(.issuite)プロジェクトファイル(さまざまな種類のInstallshield setup.exeファイル)を使用して生成されたSetup.exeを使用したサイレントインストールについて
- msiexec / aを使用して開始された管理インストールの目的は何ですか?。
免責事項:setup.exe
ファイルには、埋め込みMSIを含めることも、レガシースタイル(非MSI)インストーラーにすることも、抽出手段のない通常の実行可能ファイルにすることもできます。以下の「ディスカッション」では、最初にMSIファイルの管理イメージの使用方法とsetup.exeファイルからMSIファイルを抽出する方法について説明します。次に、他の種類のsetup.exeファイルを処理するためのリンクをいくつか提供します。コメントセクションも参照してください。
更新:管理インストールを使用したMSIファイル抽出の説明の前に、いくつかのセクションがすぐ下に追加されました。最も重要なのは、WiX setup.exeバンドルの抽出に関する宣伝文句です(ブロックの新しい子供)。抽出されたセットアップファイルを見つけるための「最後の手段」は、インストーラーを起動してから、一時フォルダーで抽出されたファイルを探すことです(長押しWindows Key、タップR、入力%temp%
、または%tmp%
押すEnter)-信頼性の理由から、最初に他のオプションを試してください。
このような重い相互リンクを伴う「一般化された混乱」についてお詫びします。リンクを十分に掘り下げると、必要なものが見つかると思いますが、コンテンツは実際にクリーンアップして整理する必要があります。
一般的なリンク:
コンテンツの抽出:
ベンダーリンク:
テクニカルノート:WiXツールキットはsetup.exe
、ブートストラッパーツールで構築されたファイルを提供するようになりました。このファイルを抽出Burn
するには、ツールキット独自の逆コンパイラーが必要です。dark.exe
Burnは、複数の埋め込みMSIまたは実行可能ファイルを指定された順序でインストールできるsetup.exeファイルを作成するために使用されます。抽出コマンドの例を次に示します。
dark.exe -x outputfolder MySetup.exe
このような抽出を実行する前に、いくつかの前提条件の手順が必要です。
command prompt
、を開くだけです。次に、上記のコマンドを指定してを押しますCD
setup.exe
EnterMSIまたはWindowsインストーラーには、これに対する組み込みのサポート( MSIファイルからのファイルの抽出)があります。これは、管理インストールと呼ばれます。これは基本的に、多くのターゲットコンピューターでインストールを実行できるネットワークインストールポイントを作成する方法として意図されています。これにより、すべての修復操作でソースファイルを常に使用できるようになります。
管理者インストールの実行とzipツールを使用したファイルの抽出は大きく異なることに注意してください。後者は、パッケージが外部ソースファイルを使用するように設定されるようにメディアテーブルのメディアレイアウトを調整しません-これは正しい方法です。常に、ハッキーなzip抽出よりも実際の管理者インストールを実行することをお勧めします。圧縮に関しては、実際には、MSIファイル形式内のcabファイルに使用される3つの異なる圧縮アルゴリズムがあります。MSZip、LZX、およびStoring(非圧縮)です。これらはすべて、管理者インストールを実行することで正しく処理されます。
重要: Windowsインストーラーは、インストールされたMSIファイルをシステムにキャッシュして、修復、変更、およびアンインストールのシナリオを実行します。Windows 7(MSIバージョン5)以降、MSIファイルはフルサイズでキャッシュされるようになり、セットアップの起動時にUACプロンプトが表示されないようにするファイル署名の破損を回避できます(Vistaの既知の問題)。これにより、ディスクスペースの消費量が大幅に増加する可能性があります(一部のシステムでは数ギガバイト)。巨大なMSIファイルのキャッシュを防ぐには、インストールする前にパッケージのadmin-installを実行する必要があります。これは、管理対象ネットワークに適切に展開されている企業が行う方法であり、cabファイルを取り除き、小さなMSIファイルとそれ以外のファイルを使用してネットワークインストールポイントを作成します。
便利な概念であるため、admin-installsの詳細を読むことをお勧めします。また、stackoverflowに関する投稿を書きました。msiexec/ aを使用して開始された管理インストールの目的は何ですか?。
本質的に、管理者のインストールは次の場合に重要です。
詳細については、上記のリンク先のstackoverflowの投稿をお読みください。これは、システム管理者、アプリケーションパッケージャー、セットアップ開発者、リリースマネージャー、さらには平均的なユーザーでさえ、インストールしているものなどを確認するための非常に重要な概念です。
インストーラーの配信方法に応じて、いくつかの異なる方法で管理者インストールを実行できます。基本的に、 MSIファイルとして配信されるか、 setup.exeファイルにラップされます。
管理者特権のコマンドプロンプトからこれらのコマンドを実行し、対話型コマンドラインのGUIの指示に従います。
MSIファイル:
msiexec /a File.msi
これはGUIで実行するためのものであり、サイレントに実行することもできます。
msiexec /a File.msi TARGETDIR=C:\MyInstallPoint /qn
setup.exeファイル:
setup.exe /a
setup.exeファイルは、レガシースタイルのセットアップ(非MSI)または恐ろしいInstallscript MSIファイルタイプ(ハイブリッドの非標準準拠のMSI形式を持つよく知られているバグのあるInstallshieldプロジェクトタイプ)にすることもできます。これは基本的に、カスタムのより高度なGUIを備えたMSIですが、バグもたくさんあります。
従来のsetup.exeファイルの場合、/ aは何もしませんが、このpdfで説明されているように/ extract_all:[path]スイッチを試すことができます。サイレントインストールなどにも参考になります。もう1つのリソースは、Installshieldsetup.exeコマンドラインパラメーターのこのリストです。
MSIパッチファイル(* .MSP)を管理イメージに適用して、ファイルを適切に抽出できます。7Zipはファイルを抽出することもできますが、適切にフォーマットされません。
最後に-最後の手段-他の方法が機能しない場合は、システムのtempフォルダーをクリーンアップし、setup.exeをインタラクティブに起動して、最初のダイアログが表示されるのを待つことで、抽出されたセットアップファイルを入手できます。ほとんどの場合、インストーラーは大量のファイルを一時フォルダーに抽出します。ファイルがプレーンな場合もあれば、CAB形式の場合もありますが、Winzip、7Zip、またはUniversal Extractor(この製品はテストされていません)でさえ、これらを開くことができる場合があります。
7-Zipでうまくいくはずです。
これを使用すると、EXE内のすべてのファイル(つまり、MSIファイル)を抽出できます。
7-Zipでそれを行うことができますが、 SteinÅsmulによって指摘されているように、より良い方法は管理上のインストールです。
この質問は主にタグが付けられたInstallShieldに関するものだと思いますが、WiXベースのパッケージ(および場合によっては他のパッケージ)でも同じ問題が発生する場合は、次のように/extractを使用してインストーラーを呼び出してください。
C:\> installer.exe /extract
これにより、MSIがインストーラーと一緒にフォルダーに配置されます。
パラメータから開始:
setup.exe /A
含まれているファイル(を含むMSI
)の保存を要求します。
これは、を作成したソフトウェアによって異なる場合がありますsetup.exe
。
これを行う唯一の方法は、exeを実行してMSIを収集することです。注意しなければならないのは、MSTを使用してMSIを変換している場合、それらが失われる可能性があるということです。
私はこのバッチコマンドラインを使用します:
SET TMP=c:\msipath
MD "%TMP%"
SET TEMP=%TMP%
start /d "c:\install" install.exe /L1033
PING 1.1.1.1 -n 1 -w 10000 >NUL
for /R "%TMP%" %%f in (*.msi) do copy "%%f" "%TMP%"
taskkill /F /IM msiexec.exe /T
インストーラーを起動しますが、ボタンは押さないでくださいInstall >。それで
cd "%AppData%\..\LocalLow\Sun\Java"
サブディレクトリの1つでMSIファイルを見つけます(例:)jre1.7.0_25
。
Data1.cab
そのサブディレクトリからも必要になることに注意してください。
ツールを使う必要はありません!! 簡単な方法に従うことができます。
どのツールが自己解凍型のセットアッププログラムを作成したのかわからないため、一般的な回答を提供する必要があります。
この種のほとんどのプログラムは、パッケージファイル(.msi)をTEMPディレクトリに抽出します。この動作は、InstallShieldDeveloperのデフォルトの動作です。
追加情報がない場合は、セットアップを起動するだけで、最初のMSIダイアログが表示されたら、TEMPディレクトリで新しく作成されたサブディレクトリまたはMSIファイルを調べることをお勧めします。インストーラーをキャンセル/停止する前に、そのMSIファイルをTEMPフォルダーからコピーするだけです。その後、インストールをキャンセルできます。