[System Environment] | ||||||||||||
.MSIファイルを解凍して中のファイルを取り出す(msix編)
|
||||||||||||
|
解説 |
.MSIファイルは、Windowsアプリケーションや修正プログラムの配布などで使用される、インストール・イメージ用のファイル形式である。この中には、.EXE実行ファイルやDLL、リソース、レジストリや各種セットアップ情報などが含まれている。このファイルはインストーラによって利用されるが、場合によっては、プログラムをインストールせずに、その内容だけを確認したいことがある。どのようなファイルがインストールされるのか調べたり、すでにインストールされているプログラム・ファイルのバージョンと比較したりするためだ。
TIPS「.MSIファイルを解凍して内部のファイルを取り出す(msiexec編)」では、Windows Installerの管理者ポイントへのインストール機能を利用して、.MSIファイルを解凍し、中に含まれているファイルを取り出す方法を解説した。ただしこの方法では中のファイルをそのまま取り出すのではなく、インストール・ポイントにファイルを展開するので、元の状態とは少し異なっている。
これに対し、以下のBlogページで紹介されているmsix.exeというツールを利用すると、.MSIファイルの内容を展開して、中のファイルをそのまま取り出すことができる。
このBlogページの末尾に「Attachment(s):」という添付ファイルへのリンク項目があるので、これをクリックしてmsix2.zipというファイルをダウンロードする。これは、Visual Studio用のC++のソースコードとプロジェクト・ファイル、バイナリ・ファイルである。ダウンロードしたmsix2.zipファイルをエクスプローラで開き、releaseフォルダの中にあるMsiX.exeというファイルを取り出し、Windowsのシステム・フォルダ(デフォルトではC:\Windows\system32)もしくは、どこか適当なフォルダへコピーしておく。
操作方法 |
msix.exeはコマンド・プロンプト上で利用するツールであり、次のように使う。
msix <入力ファイル名> [/out <出力先フォルダ>] [/ext] |
<入力ファイル名>には.MSIファイル(.MSIだけでなく、.MSMや.MSP、.PCPファイルも指定可能)のファイル名を指定する。
デフォルトでは、カレント・フォルダにファイルが展開されるが、/outオプションを使うと、指定したフォルダにファイルを展開できる。ただし指定する出力先フォルダは、すでに存在するフォルダ名でなければならない(存在していないとmsix.exeの実行は失敗する)。
また/extオプションを指定すると、展開したファイルのタイブに応じて、適切な拡張子を追加する。.MSIファイル中のファイルには拡張子が付いていない(ことが多い)ため、拡張子なしで展開させると、後でファイルの内容を確認するのが困難になる(どのような拡張子を付けるかは、インストール・ファイル中のデータベースなどに記録されていて、正規のインストール時に自動的に補完されるため、.MSIファイル中では単なるバイナリ・データ・ファイルとして保存されている)。/extオプションを使用すると、展開結果のファイルの内容を調べ、例えば.icoや.dll、.cab、.bmpなどの拡張子を自動的に補完する。
例えばlogparser.msiという.MSIファイルを展開するには、次のようにする。
C:\WORK>mkdir logparser …展開先フォルダを作成しておく |
msiexecで展開した場合と結果が異なるが、msixは単に.MSIファイルを展開して中のファイルを取り出しているだけであり、.MSIファイル内の構造をほぼそのまま反映している。これに対してmsiexecでは、後でインストールに利用するための形式で(管理者用インストール・ポイントに)展開しているので、結果が異なっている。
関連記事(Windows Server Insider) | ||
![]() |
DLL Hellを解消する新しいWindowsインストーラとアセンブリ(技術解説) | |
関連リンク | ||
![]() |
Digital Signatures in Windows Installer(Windows Installer開発者、Heath StewartのBlog) | |
![]() |
Patch Files Extractor(Windows Installer開発者、Heath StewartのBlog) | |
![]() |
Waiting for msiexec.exe to Finish(Windows Installer開発者、Heath StewartのBlog) | |
![]() |
What's in a Patch(Windows Installer開発者、Heath StewartのBlog) | |
![]() |
Inside the MSI file format(Windows Installer開発者、Rob MenschingのBlog) | |
この記事と関連性の高い別の記事
- Windowsで.MSIファイルを解凍して内部のファイルを取り出す(msiexec編)(TIPS)
- volrestコマンドでシャドウ・コピーから以前のバージョンのファイルを取り出す(TIPS)
- Windows Vista向け修正プログラムの内容を調査する(TIPS)
- 修正プログラムの内容を調査する(TIPS)
- Webブラウザでダウンロードしたファイルを開かずに保存させる(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
![Jigsaw](/fwin2k/win2ktips/images/jigsaws.gif)
![]() |
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
![]() |
|
|
|
![]() |