MSIパッケージからファイルを抽出するにはどうすればよいですか?


192

ファイルを取得したい古いパッチがいくつかありますが、それらをマシンにインストールするのに時間をかけたくありません。

MSIインストールパッケージからファイルを抽出する方法をアドバイスできますか?


あなたは、などを取り出したいものを正確MSIインストール・パッケージの詳細については、お使いのOSの詳細情報を提供することができます
Firee

回答:


212

まず、昇格したコマンドプロンプトにアクセスして、これを行います。

  1. [スタート]ボタンをクリックします。

  2. すべてのプログラムをクリックします。

  3. アクセサリに移動します。

  4. コマンドプロンプトを右クリックします。

  5. [管理者として実行]を選択します。

  6. UACプロンプトが表示されたら、[続行]をクリックします。

昇格したコマンドプロンプトが表示されたら、次を入力します。

msiexec /a drive:\filepath\to\MSI\file /qb TARGETDIR=drive:\filepath\to\target\folder

目的の場所を使用して、上記のファイルパスを埋めます。例:

msiexec /a c:\testfile.msi /qb TARGETDIR=c:\temp\test

5
別の簡単なGoogleがこれを見つけました:legroom.net/software/uniextract 私はビルトインを使用したいのですが、それは許容できるユーティリティのように見えます。

5
私の知る限り(msiexec /?から)、このコマンドは実際にプログラムをその場所にインストールします。私はこれが元の要求者が念頭に置いていたとは思わない。

8
@ user6738これをテストしましたが、ソフトウェアはインストールされません。ソフトウェアはappwizで見つからず、msiを介してアンインストールできず、インストールされていないことを報告します。それは本当に私のテストからファイルを抽出します。
アダムキャビネス

17
ロックダウンされたWin8.1コンピューター(職場のラップトップ)でこれを実行しましたが、ファイルを抽出するため管理者権限は必要ないことに注意してください.msi
MattDMo 14年

5
素晴らしい答えです!これをextractMSI.cmdファイルにmsiexec /a %1 /qb TARGETDIR="%~d1%~p1%~n1" || pause追加し、msiファイルの[...で開く]オプションに追加しました
トビアスキンツラー14

75

7Zipを使用します
MSI、CAB、一部のEXE、およびその他の多くのパッケージが解凍されます。これを実行するために管理者権限も必要ありません。

-編集-

そして、そのオープンソースなので、物を買うようにあなたに懇願するしつこいメッセージはありません


13
そして、それを試した後、msiexecはより良い仕事をします(ディレクトリの保存、ファイルの正しい命名など)
マイケルシューベルト

これは、32ビット7-Zipを使用したwin7 x64では動作しないようです。ファイルを開くように指示する必要がある特定の方法(ドラッグドロップではない)がありますか?
ebyrob

あなたは右のファイルをクリックすると、コンテキストメニューに7zipをのオプションがあるはずです-それはあなたのファイルを抽出するためのオプションを提供します
シェカール

7
実際のファイルの代わりに感嘆符が付いたものがたくさんあります。何かが変更されたか、奇妙なmsiファイルがあると思います。7-Zip 9.20を試しました。
mlt

@MichaelSchubert-状況によります。Windows以外のマシンを実行している場合、コマンドラインバージョンは他のシステムでも使用できるため、7Zipは適切なオプションです。私が言うユースケースに依存します。
ルンドバーグあたり

46

完全に無料でオープンソースのlessmsiもあります。

広告やしつこいメッセージはありません。ディレクトリ構造とファイル名を正しく保持します。洗練されたコマンドラインインターフェイスと、ファイルを閲覧したり、内部MSIテーブルや他のMSI属性を表示できるグラフィカルユーザーインターフェイスを備えています。


7
ありがとう!これは、<インストールパッケージ名>の「admin installはサポートされていません」というmsiexecコマンドでは抽出されないMSIから抽出するのに役立ちました
-axk

1
これは助けた.. msiexecは何らかの理由で抽出しなかった..
Abdul Hameed

23

ファイル抽出のための組み込みのMSIサポートがあります(管理者インストール)

MSIまたはWindowsインストーラーに、MSIファイルからのファイルの抽出という組み込みのサポートがあります。これは管理インストールと呼ばれます。基本的には、多くのターゲットコンピューターでインストールを実行できるネットワークインストールポイントを作成する方法として意図されています。これにより、すべての修復操作でソースファイルが常に使用可能になります。

管理者インストールの実行とzipツールを使用したファイルの抽出は、非常に異なることに注意してください。後者は、メディアテーブルのメディアレイアウトを調整しないため、パッケージは外部ソースファイルを使用するように設定されます。これは正しい方法です。ハッキーなzip抽出よりも実際の管理者インストールを常に実行することをお勧めします。圧縮に関しては、MSIファイル形式内のcabファイルに実際に使用される3つの異なる圧縮アルゴリズムがあります。MSZip、LZX、およびStoring(非圧縮)です。これらはすべて、管理者インストールを実行することで正しく処理されます。


管理者インストールには多くの用途があります

admin-installsは有用な概念であるため、admin-installsの詳細を読むことをお勧めします。また、stackoverflowに関する投稿を書いています。msiexec/ aを使用して開始される管理者インストールの目的は何ですか?

本質的に、管理者インストールは次の場合に重要です。

  • インストーラーファイルの抽出と検査
  • SCCMなどのシステム管理ソフトウェアを使用した展開(ファイルが内部cabから抽出されるため、C:\ Windows \ Installerに巨大なキャッシュされたMSIファイルを回避します)
  • 企業アプリケーションの再パッケージ化
  • 修復、変更、および自己修復操作
  • パッチ適用とアップグレード
  • MSIアドバタイズメント(「ソースから実行」機能)
  • 他の多くの小さな詳細

詳細については、上記のリンクされた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ファイル/何もしませんが、あなたは試すことができます/ EXTRACT_ALL:[パス]スイッチをで説明したように、このPDFファイル。サイレントインストールなどにも適しています。別のリソースは、Installshield setup.exeコマンドラインパラメーターのこのリストです

MSIパッチファイル(* .MSP)を管理イメージ適用して、そのファイルを適切に抽出できます。7Zipもファイルを抽出できますが、適切にフォーマットされていません。

最後に、他の方法が機能しない場合は、システムの一時フォルダーを消去し、setup.exeをインタラクティブに起動して、最初のダイアログが表示されるまで待機することにより、抽出されたセットアップファイルを取得できます。ほとんどの場合、インストーラーは多数のファイルを一時フォルダーに抽出します。時にはファイルはプレーンで、CAB形式の場合もありますが、Winzip、7Zip、またはUniversal Extractor(この製品はテストしていません)でも開くことができる場合があります。


:また、この答えを参照superuser.com/questions/307678/...
スタインÅsmul

stackoverflowの同じ投稿:stackoverflow.com/a/24987512/129130(一方を削除する必要がありますが、両方とも投票され、最近マージされました)。
スタインÅsmul14年

8

私が推薦するUniExtractを neoiceのソリューションは、より簡単に作るため。同じことを行い、より自動化されており、管理インストールだけではなく、MSIファイルを抽出するためのいくつかの方法を可能にします(彼のソリューションが使用しているように)。

UniExtractは、WISEまたはInstallShieldでパッケージ化されたexeのほか、さまざまな圧縮形式も処理できます。ああ、その無料。

Universal Extractorは、それが言うことを正確に実行するプログラムです。単純なzipファイル、インストールプログラム、またはWindowsインストーラー(.msi)パッケージなど、あらゆる種類のアーカイブからファイルを抽出します。



1

Orcaを使用できます。このアプリはPlatform SDKの一部ですが、ここからダウンロードすることもできます http://astebner.sts.winisp.net/Tools/Orca.zip


3
Orcaは、ファイル、フォルダー、レジストリテーブルなどのメタデータの抽出に適しています。通常、実際のファイルの抽出にはあまり役立ちません(ファイルがバイナリテーブルに格納されていない場合は、まったく役に立ちません)。
Synetech

1

lessmsiここでは、抽出するファイルとその保存先を正確に選択できるため、ここでの選択が最適です。またapt-get、Windows用のフレームワークを使用して簡単にインストールできますChoclatey。上記のlessmsiWebサイトは移動され、GitHubで検索/ダウンロードすることもできます。さらに、他の多くのツールとMSI関連の情報をここで見つけることができます。:(申し訳ありませんが、2つ以上のリンクを投稿することはできません!)






0

Installshield .exeセットアップは(あなたが呼ぶように)多くのフレーバーで提供されており、一般にそれらからファイルを抽出することが可能です。

Installshield setup.exeには、古いレガシーの非msiインストーラーまたは新しいmsiインストーラーを含めることができます。

setup.exeがMSIセットアップをラップしている場合は、setup.exe / aを指定するとMSIの管理者インストールが実行され、ファイルの場所を指定して出力できます。

setup.exeがレガシーInstallshieldセットアップである場合、/ extract_all:[path]スイッチによるファイルの抽出をサポートする場合としない場合があります。こちらをご覧ください(2011年7月に更新、Acressoリンクは無効になり、2014年2月に更新-itninjaを指すようになりました)。

また、これらのファイルを保持する別の方法は、システムの一時フォルダーを消去し、setup.exeを対話形式で起動してから、最初のダイアログが表示されるまで待つことです。ほとんどの場合、インストーラーは多数のファイルを一時フォルダーに抽出します。時にはファイルはプレーンで、CAB形式の場合もありますが、Winzip、7Zip、またはUniversal Extractor(この製品はテストしていません)でも開くことができる場合があります。


これを実行するための私の要件は、現在合格しています-しかし、私はそれが機能するかどうかを確認するために、ある時点であなたが提案することを試みます。返信いただきありがとうございます。
マーティン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.