コンテキストメニューの抽出コマンドをMSIファイルに追加
MSIパッケージをお持ちの場合は、アプリをインストールせずにそのコンテンツを抽出することをお勧めします。 これは、サードパーティのツールを使用せずにすばやく実行できます。 Windowsには、操作に必要なすべてのものがすでに付属しています。 この記事では、MSIファイルのコンテキストメニューに便利なコマンド「抽出」を追加する方法を説明します。
Windowsは、Windowsインストーラーの一部であるmsiexecアプリを介してMSIパッケージを処理します。 これは、多数のコマンドラインスイッチをサポートする組み込みツールです。 次のコマンドを実行すると、それらについて知ることができます。
- 押す 勝つ + NS キーボードのショートカットキーを使用して、[実行]ダイアログを開きます。
- [実行]ボックスに次のように入力します。
msiexec /?
- Windowsインストーラーは、ヘルプの内容をウィンドウに表示します。
次のスイッチをサポートします。
インストールオプション
製品をインストールまたは構成します
/ a管理インストール-ネットワークに製品をインストールします
/NS [/ t] [/ g]
製品をアドバタイズします-mはすべてのユーザーに、uは現在のユーザーに
製品をアンインストールします
表示オプション
/quiet
静かなモード、ユーザーの操作なし
/passive
無人モード-プログレスバーのみ
/q[n|b|r|f]
ユーザーインターフェイスレベルを設定します
n-UIなし
b-基本的なUI
r-UIの削減
f-フルUI(デフォルト)
/help
ヘルプ情報
再起動オプション
/norestart
インストールが完了した後は再起動しないでください
/promptrestart
必要に応じてユーザーに再起動を促す
/forcerestart
インストール後は必ずコンピュータを再起動してください
ロギングオプション
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*]
i-ステータスメッセージ
w-致命的ではない警告
e-すべてのエラーメッセージ
a-アクションの開始
r-アクション固有のレコード
u-ユーザーリクエスト
c-初期UIパラメーター
m-メモリ不足または致命的な終了情報
o-ディスクスペース不足のメッセージ
p-ターミナルのプロパティ
v-詳細出力
x-追加のデバッグ情報
+-既存のログファイルに追加
! -各行をログにフラッシュします
* -vおよびxオプションを除くすべての情報をログに記録します
/log
/ l *に相当
更新オプション
/ update [; Update2.msp]
更新を適用します
/ uninstall [; Update2.msp] / package製品の更新を削除します
修理オプション
/ f [p | e | c | m | s | o | d | a | u | v]製品を修理します
p-ファイルが欠落している場合のみ
o-ファイルが見つからないか、古いバージョンがインストールされている場合(デフォルト)
e-ファイルが見つからないか、同等以上のバージョンがインストールされている場合
d-ファイルが見つからないか、別のバージョンがインストールされている場合
c-ファイルが見つからないか、チェックサムが計算値と一致しない場合
a-すべてのファイルを強制的に再インストールします
u-必要なすべてのユーザー固有のレジストリエントリ(デフォルト)
m-必要なすべてのコンピュータ固有のレジストリエントリ(デフォルト)
s-既存のすべてのショートカット(デフォルト)
v-ソースから実行し、ローカルパッケージを再キャッシュします
パブリックプロパティの設定
[PROPERTY = PropertyValue]
この状況に関係するオプションは/ aです。 「管理インストール-ネットワークに製品をインストールする」と記載されていますが、使用できます。 単一のMSIパッケージの内容を、 パッチ。 次のコマンドを使用できます。
msiexec / a "path \ to \ package.msi" / qb TARGETDIR = "path \ to \ the \ destination \ folder"
TARGETDIRは、すべてのパッケージに共通のプロパティであり、MSIパッケージの内容の宛先フォルダーを指定します。
スイッチ「/ qb」は、プロセス中に基本的なインターフェイスを表示するようにWindowsインストーラーに指示します。 [キャンセル]ボタンとプログレスバーのダイアログが表示されます。
たとえば、次のコマンドを使用して、FARManagerのMSIインストーラーを解凍できます。
msiexec / a "C:\ Users \ winaero \ Downloads \ Far30b4774.x64.20160902.msi" / qb TARGETDIR = "C:\ Users \ winaero \ Downloads \ Far"
ターゲットフォルダが存在しない場合は、自動的に作成されます。 私の場合、ダウンロードフォルダにFarサブフォルダが作成されます。
上記のコマンドは、[実行]ダイアログに直接入力できます。
コンテキストメニューの抽出コマンドをMSIファイルに追加
- 開ける レジストリエディタ.
- 次のレジストリキーに移動します。
HKEY_CLASSES_ROOT \ Msi。 Package \ shell
ヒント: ワンクリックで目的のレジストリキーにジャンプする方法.
- ここに新しいサブキーを作成し、名前を付けます エキス.
- 抽出キーの下に、新しいサブキーを作成して名前を付けます 指示:
- のデフォルト値を設定します 指示 次の文字列のサブキー:
msiexec.exe / a "%1" / qb TARGETDIR = "%1目次"
次のスクリーンショットを参照してください。
ファイルエクスプローラーでMSIパッケージを右クリックすると、新しいコンテキストメニュー項目[抽出]が表示されます。 これを実行すると、現在のフォルダに新しいディレクトリ「package_name.msiContents」が作成され、そこにパッケージのコンテンツが抽出されます。 次のスクリーンショットを参照してください。
時間を節約するために、すぐに使用できるレジストリファイルを作成しました。 以下のリンクを使用してダウンロードできます。
レジストリファイルをダウンロードする
UNDOファイルが含まれています。
このトリックは、Windows 10、Windows 8、およびWindows7で機能します。
一部のパッケージは管理インストールをサポートしていないことに注意してください。 この方法では抽出できません。 また、この方法でMSIパッケージを抽出すると、その管理用インストールポイント(抽出されたフォルダー)がサービス可能になります。 Windowsインストーラパッチ(MSP)を使用して更新できるため、パッケージがインストールされると、パッチも適用されます。