2026 年メンテナンス注記: この記事は、Windows インストーラーの変更を合法かつ安全に観測し、再現可能な配布を作るガイドとして更新しました。末尾には出典確認用に 2011 年の InstallRite 原文を全文保存していますが、ダウンロードミラー、中国語化パッチ、登録情報の捕獲、自己解凍再パッケージの主張はいずれも現行手順ではありません。
Table of Contents
最初に境界を決める:観測は再配布許可ではない
InstallRite 2.5c は Windows 9x/2000/XP 時代の製品です。旧記事はインストール前後のスナップショットを別マシンで動くパッケージへ直接変え、ソフトウェア登録状態まで捕獲していました。これは技術的観測、ライセンス、機密データを混同します。Ghost のディスクイメージ、インストーラー変更の観測、アプリ配布も三つの別問題で、互いの代用ではありません。
新しいバイナリパッケージを作成・配布できるのは、ソフトウェアと素材を所有している、オープンソースライセンスが明確に許可している、または発行元の書面承認がある場合だけです。ソフトを一つ購入した、一台へインストールできる、変更を観測できるという事実は、再パッケージ、複数端末配布、公開配布の権利を自動的に与えません。本ガイドは法律助言ではありません。商用ソフトや組織間配布はライセンス/法務責任者が確認してください。
ライセンスキー、認証状態、セッショントークン、ブラウザー/アプリのプロファイル、ユーザー文書、パスワード、証明書秘密鍵、デバイス/ドメインの識別情報、マシン SID、テレメトリ ID、有料コンポーネント、他の利用者/顧客データを捕獲・再配布してはいけません。インストールにログインやオンライン認証が必要なら、発行元の企業向け配布方法またはテストテナントを使い、変換は不適切かもしれないと判断します。
| 目的 | 推奨経路 | 権利の境界 |
|---|---|---|
| 既存ソフトを導入 | 発行元署名済みインストーラー、Microsoft Store、信頼できるパッケージマネージャー | 元ライセンスを守り、バイナリを再梱包しない |
| 発行元インストーラーを自動化 | 発行元文書のサイレント引数、MSI なら標準 MSI 引数だけを使う | マニフェスト/スクリプトにキーを埋めず、認証を回避しない |
| 既存インストーラーを WinGet で発見可能にする | 発行元の安定 URL と SHA-256 を指すマニフェストを保守 | 通常、マニフェストはインストーラー本体を持たず配布権も生まない |
| MSIX へ変換 | 権利があり互換性がある場合、クリーン VM で MSIX Packaging Tool | 変換後ペイロードにも元ライセンスが適用される |
| 自社ソフトの MSI/EXE/MSIX を作る | ソースから WiX、MSIX/Windows SDK、プロジェクトのビルドで生成 | 依存ライセンス、ソース、ビルド来歴を保持 |
1. まず受入情報と来歴を記録する
何かを実行する前に、製品名、発行元、正確なバージョン、アーキテクチャ、導入範囲(ユーザー/マシン)、元の HTTPS ダウンロードページとバージョン固定 URL、取得時刻、ライセンス/EULA、対応 Windows、依存、アップグレード/アンインストール方法、発行元の配布文書を記録します。古いミラー、フォーラム添付、非公式の言語化パッチ、内容が変わる latest URL から始めません。
先に発行元署名と SHA-256 を確認します。次の PowerShell は隔離環境で指定ファイルを読むだけです。プレースホルダーパスを発行元から取得したインストーラーへ置き換えます。
$InstallerPath = 'C:/Staging/PublisherSetup.exe'
Get-FileHash -LiteralPath $InstallerPath -Algorithm SHA256
Get-AuthenticodeSignature -LiteralPath $InstallerPath |
Select-Object Status, StatusMessage,
@{Name='SignerSubject';Expression={$_.SignerCertificate.Subject}},
@{Name='SignerThumbprint';Expression={$_.SignerCertificate.Thumbprint}}
Status = Valid だけでは不十分です。署名主体が期待する発行元で、バージョンがリリースノートと一致する必要があります。未署名、無効署名、発行元値と異なるハッシュ、未知ドメインへのリダイレクト、マルウェア対策の警告があれば停止します。「パッケージ作業を続ける」ために保護を無効化しません。
WinGet に既存登録がありそうなら、インストール前にメタデータを確認します。プレースホルダーを確認済みの正確な ID に置き換えます。
winget show --id 'Publisher.Product' --exact --source winget
2. クリーンで使い捨て可能、復元可能な環境を使う
正式な捕獲には、対象 Windows のリリース、パッチ、アーキテクチャ、言語と一致するクリーンな Hyper-V/企業 VM を優先し、インストール前に名前付きスナップショットを作ります。VM を本番ドメインへ参加させず、個人アカウントを同期せず、ユーザープロファイルをマウントせず、署名鍵を置きません。各バージョンを同じ既知基準からやり直し、「見た目がきれい」な個人 PC で複数アプリを連続捕獲しません。
Windows Sandboxは終了時に内容が破棄されるため短時間の観測に便利ですが、永続スナップショットでも完全な対象環境でもありません。ネットワークは既定で有効で、Microsoft は不審なアプリを内部ネットワークへ露出し得ると警告しています。自己完結型インストーラーなら .wsb でネットワーク、vGPU、クリップボードを無効にし、秘密を含まないステージングだけを読み取り専用で割り当てられます。
<Configuration>
<VGpu>Disable</VGpu>
<Networking>Disable</Networking>
<ClipboardRedirection>Disable</ClipboardRedirection>
<MappedFolders>
<MappedFolder>
<HostFolder>C:/Packaging/Staging</HostFolder>
<SandboxFolder>C:/Staging</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
</Configuration>
割り当てフォルダーもホストの露出を増やすため、インストーラーのコピーだけを置きます。Sandbox 終了時には証拠も消えるので、完全な差分、再起動、アップグレード試験はスナップショット可能な VM で行います。ネット必須なら発行元ドメインとデータフローを先に確認し、隔離ネットワーク/制御プロキシを使います。認証通信を捕獲せず、便宜のため本番網へ接続しません。Microsoft の Sandbox 構成文書を参照してください。
3. 最小限で比較可能な基準を作る
VM スナップショット後、非公開の証拠ディレクトリを作り、環境を記録します。ユーザープロファイル全体やレジストリ全体は意図的にエクスポートしません。
$EvidenceRoot = 'C:/Observation'
New-Item -ItemType Directory -Path $EvidenceRoot -Force | Out-Null
Get-ComputerInfo |
Select-Object WindowsProductName, WindowsVersion, OsBuildNumber, OsArchitecture |
ConvertTo-Json |
Set-Content -LiteralPath "$EvidenceRoot/before-system.json" -Encoding UTF8
Get-Service |
Sort-Object Name |
Select-Object Name, StartType, Status |
Export-Csv -LiteralPath "$EvidenceRoot/before-services.csv" -NoTypeInformation
Get-ScheduledTask |
Sort-Object TaskPath, TaskName |
Select-Object TaskPath, TaskName, State |
Export-Csv -LiteralPath "$EvidenceRoot/before-tasks.csv" -NoTypeInformation
Get-CimInstance Win32_SystemDriver |
Sort-Object Name |
Select-Object Name, PathName, StartMode, State |
Export-Csv -LiteralPath "$EvidenceRoot/before-drivers.csv" -NoTypeInformation
CSV にもマシンパスや製品情報が含まれ得るため、管理された証拠保管庫だけに置きます。ファイル/レジストリ活動は Microsoft Sysinternals の Process Monitorをインストーラープロセスツリーと想定発行元/製品パスへ絞れます。Procmon の版、フィルター、捕獲時間を記録します。生 PML/CSV にはコマンドライン、パス、URL、トークンが入り得るため、配布パッケージや公開チケットへ入れません。
4. 一度だけインストールして観測し、個人設定をしない
VM 内の無関係な自動更新とバックグラウンドソフトを止め、一つのインストーラーだけを実行します。UI と全選択を記録しますが、ライセンスキー、個人アカウント、実顧客データは入力しません。ブラウザー、メール、同期クライアントなど差分を汚すアプリを起動しません。
MSI は Windows Installer 標準ログ引数で対話観測できます。
msiexec.exe /i "C:/Staging/Product.msi" /L*v "C:/Observation/install.log"
ログにはプロパティ、パス、発行元提供の機密値が入り得るため、保管/共有前に確認し匿名化します。EXE のスイッチに統一標準はありません。その発行元が明記した引数だけを使い、/S、/silent、応答ファイルを推測しません。
本物の MSI で、発行元が自動配布を許し、ライセンス属性を注入しない場合だけ、新しい基準で標準 quiet モードを確認します。
$Process = Start-Process -FilePath 'msiexec.exe' -ArgumentList @(
'/i', 'C:/Staging/Product.msi',
'/qn', '/norestart',
'/L*v', 'C:/Observation/install-silent.log'
) -Wait -PassThru
$Process.ExitCode
終了コードが非ゼロ、予期しない再起動、子インストーラーが残る、未知ペイロードをダウンロードする、実認証を要求する場合は捕獲を止めます。「この VM で起動した」は再配布、無人配布、全 Windows 版対応の証拠ではありません。
5. 意味のあるシステム変更を比較する
インストール後、ユーザー個人設定前に同じ順序で再採取します。
Get-Service |
Sort-Object Name |
Select-Object Name, StartType, Status |
Export-Csv -LiteralPath "$EvidenceRoot/after-services.csv" -NoTypeInformation
Get-ScheduledTask |
Sort-Object TaskPath, TaskName |
Select-Object TaskPath, TaskName, State |
Export-Csv -LiteralPath "$EvidenceRoot/after-tasks.csv" -NoTypeInformation
Get-CimInstance Win32_SystemDriver |
Sort-Object Name |
Select-Object Name, PathName, StartMode, State |
Export-Csv -LiteralPath "$EvidenceRoot/after-drivers.csv" -NoTypeInformation
絞り込んだイベントと合わせ、新規/変更されたプログラムファイル、DLL、レジストリキー、サービス、ドライバー、タスク、スタート/デスクトップショートカット、関連付け、プロトコル、COM 登録、環境変数、ファイアウォール、証明書、アンインストール項目を確認します。Windows Update、マルウェア対策、ログローテーションなどの基準ノイズを除き、全差分をパッケージ化しません。
レジストリスナップショットは特に MRU、ユーザー名、ネットワークパス、アプリトークン、マシン識別を含みやすいものです。確認済みの発行元/製品キーだけを保持します。HKCU 全体、SAM、SECURITY、ブラウザー資格情報、DPAPI 材料、ユーザープロファイルをエクスポートしません。説明できない変化があれば VM を戻し、フィルターを狭めて再観測します。
6. 実際の目的に合う配布物を選ぶ
経路 A:発行元インストーラーを保持し WinGet マニフェストを書く
通常は最も低リスクの自動化です。マニフェストは発行元のバージョン固定 HTTPS インストーラーを指し、ID、版、アーキテクチャ、種別、範囲、静默引数、SHA-256 を記録します。Microsoft の WinGet マニフェスト仕様では InstallerUrl と InstallerSha256 が必須で、クライアントがダウンロードハッシュを照合します。
winget hash "C:/Staging/PublisherSetup.exe"
ハッシュ一致はバイト整合性だけで、安全性、合法性、発行元身元の証明ではありません。バージョン固定 URL と WinGet コミュニティポリシーを使い、提出前に現行 schema/ツールで検証します。企業内マニフェストもアクセスを制限し、YAML にトークン、署名付き一時 URL、ライセンスキーを書きません。
経路 B:権限のある旧インストーラーを MSIX Packaging Tool で変換
Microsoft の MSIX Packaging Tool 手順は、先にインストーラーを理解し、クリーンなローカル、Hyper-V VM、準備済みリモート機を使うよう示します。毎回クリーンスナップショットから始め、捕獲ファイル/レジストリ、エントリーポイント、Services report を確認し、明確な基準ノイズを除きます。秘密や未観測のユーザー状態を追加しません。
MSIX は全アプリを無損失変換する答えではありません。Microsoft のパッケージ選択ガイドと既知の問題は、MSIX がドライバーを導入できず、サービスには対象 Windows 版とアカウント/依存の制約があり、カーネルドライバー、SYSTEM サービス、マシン全体 COM、シェル拡張、複雑な自己更新は従来インストーラー、外部場所パッケージ、発行元再設計が必要になり得ると説明します。無理に変換しません。
経路 C:保守権のあるソースから構築
自社/承認済みソースなら配布定義を版管理します。WiX Toolsetはレビュー可能なソースから MSI、MSP、ブートストラッパーを生成できます。コンポーネント、Upgrade Code、依存、条件、アンインストール、ロールバックをビルド定義で明示し、使用済みマシンから推測しません。
オープンソースの MSIX SDKは自社パイプラインで MSIX の検証、pack/unpack に使えますが、第三者の導入状態から許可を得る道具ではありません。認可内容だけをビルドし、ツール版を固定し、ソースと依存ロックから再現可能にします。
7. 来歴、SBOM、署名
全成果物について、製品/パッケージ ID、版、アーキテクチャ、対象 Windows 最低版、元発行元 URL、元インストーラー SHA-256 と署名者、ライセンス根拠、ビルドリポジトリ commit、ツール/VM イメージ版、依存ロック、時刻、捕獲フィルター、静默引数の根拠、アップグレード/アンインストール意味、試験結果を保持します。来歴からマシン SID、ユーザー名、秘密を除きます。
自社ビルドには SPDX/CycloneDX SBOM を生成できます。Microsoft のオープンソース SBOM Toolは SPDX を生成できますが、自動検出も人の確認が必要です。SBOM は部品を記述するだけで、再配布権を与えず、脆弱性/ライセンス確認の代わりではありません。
Microsoft は配布可能な MSIX に、対象端末で信頼される有効署名を要求します。MSIX 署名ガイドを参照してください。自己署名開発証明書は管理されたテスト専用です。本番は組織承認の署名サービス/証明書とタイムスタンプを使います。秘密鍵はハードウェア/管理鍵保管に置き、捕獲 VM、ソース、PFX コマンドライン、ログ、成果物へコピーしません。署名前に SBOM/内容を審査し、署名後にハッシュと署名を再検証します。
8. クリーン状態から完全なライフサイクルを試験する
| テスト | 必須の検証 |
|---|---|
| クリーン導入 | 標準ユーザー/管理者範囲、アーキテクチャ、依存、終了コード、再起動、署名 |
| 静默導入 | 文書化引数のみ、UI なし、子プロセス待ちなし、ログ匿名化済み |
| アップグレード | 全サポート旧版から更新、許可されたユーザーデータを保持し秘密スナップショットは保持しない |
| アンインストール | ファイル、レジストリ、サービス、タスク、ショートカット、ファイアウォールを設計通り清掃 |
| 修復/ロールバック | 中断、容量不足、昇格拒否、キャンセル時に定義済み状態へ戻る |
| 環境行列 | 対応 Windows、x64/Arm64、言語、オンライン/オフライン、ドメインポリシー |
| アプリ動作 | 初回起動、関連付け、プロトコル、更新、ロック/再起動、主要ワークフロー |
各試験で名前付きスナップショットへ戻し、前試験の残留上で続けません。有料ソフトは承認済みテスト席だけを使います。前後証拠を比較し、Defender/SmartScreen、イベント、インストーラーログを確認します。合格させるためセキュリティ製品を無効にしません。
隔離テストグループからリング展開します。元署名済みインストーラー、旧配布定義、アンインストール/復旧経路、互換性判断を保持します。アンインストール不完全、アップグレードでデータ破損、署名不信、説明不能なアカウント/マシン状態があれば公開を止め、前版へ戻しクリーンスナップショットから再構築します。
捕獲変換をやめるべき場合
カーネルドライバー、ブート時コンポーネント、複雑な SYSTEM サービス、外部サービス依存、マシン全体 COM/シェル統合、自己保護/アンチチート、ハードウェア紐付け、有料認証、ユーザープロファイル移行、強結合自己更新、固定不能な動的ダウンロードがある場合、捕獲は通常不適切です。発行元インストーラーと企業文書を使うか MSI/MSIX/オフラインレイアウトを依頼し、自社ソフトならソースで設計を直します。
「差分が完全に見える」「自己解凍パッケージが動く」は正しさの証拠ではありません。保守可能な配布には明示権利、固定入力、レビュー可能な定義、信頼署名、完全なライフサイクル試験、実行可能なロールバックが必要です。
公式・プロジェクト資料
- Microsoft:Windows Sandbox
- Microsoft:`.wsb` で Sandbox を構成
- Microsoft:MSIX Packaging Tool 変換手順
- Microsoft:Windows アプリのパッケージ選択
- Microsoft:MSIX Packaging Tool の既知問題
- Microsoft:MSIX 署名
- Microsoft Sysinternals:Process Monitor
- Microsoft WinGet:インストーラーマニフェスト仕様
- WiX Toolset 公式文書
- Microsoft オープンソース MSIX SDK
- Microsoft オープンソース SBOM Tool
歴史的原文アーカイブ(実行禁止)
以下は 2011 年ソースエクスポートの可視本文全文で、行末空白のみ正規化しています。七つの固有な失効/非安全 HTTP 宛先だけを狭く置換しました。五つの画像 URL は
[REDACTED: dead insecure image URL]、InstallRite ミラーは[REDACTED: dead insecure InstallRite download URL]、中国語化パッチは[REDACTED: dead insecure localization-patch URL]です。同一 URL の全出現箇所を置換し、その他の本文は書き換えていません。このアーカイブには登録状態の捕獲と有料ソフト再梱包の古い例があり、歴史的証拠に限ります。
InstallRite:Ghost做不到的我来做
如果要备份系统,大多数人第一个想到的就是Ghost,可是Ghost仅仅能够备份某个分区,如果只要备份某个软件,我们又该怎么办呢?
很多软件在安装时除了在安装文件夹内拷入相关的程序文件外,还会在Windows的安装文件夹或Windows\System系统文件装入一些.dll的链接库,有的还会在注册表或其地文件夹内写入信息,这样当你只是拷贝软件安装文件夹的方法来备份某个软件是没有用的,但是如果你使用InstallRite来备份软件那么就不存在这些问题了。
Table of Contents
Toggle
- [初识InstallRite](https://blog.lazying.art/en/html/computer_internet/software/443/installrite%ef%bc%9aghost%e5%81%9a%e4%b8%8d%e5%88%b0%e7%9a%84%e6%88%91%e6%9d%a5%e5%81%9a.html/#%E5%88%9D%E8%AF%86InstallRite)
- [InstallRite制作范例](https://blog.lazying.art/en/html/computer_internet/software/443/installrite%ef%bc%9aghost%e5%81%9a%e4%b8%8d%e5%88%b0%e7%9a%84%e6%88%91%e6%9d%a5%e5%81%9a.html/#InstallRite%E5%88%B6%E4%BD%9C%E8%8C%83%E4%BE%8B)
## 初识InstallRite

InstallRite小档案
软件版本:2.5c 软件大小:4993KB
软件性质:免费软件 适用平台:Windows 9x/2000/XP
下载地址:[[REDACTED: dead insecure InstallRite download URL]]([REDACTED: dead insecure InstallRite download URL])
汉化补丁:[[REDACTED: dead insecure localization-patch URL]]([REDACTED: dead insecure localization-patch URL])
软件安装之后,每当要安装新的应用程序时,通过它的安装监视功能,就可以将所有软件的安装资料储存起来,这些信息包括系统设置、使用者设置、软件的默认值及软件的注册信息等等。然后软件将所生成的安装映像文件用可执行文件的方式存储,你可以将这个映像文件储存在本地硬盘、光盘或者是服务器上,以后在本机或其他电脑上直接运行镜像文件就可以完成相应软件的安装、设置、注册等操作。怎么样,听完介绍是不是很想试试它呢?
## InstallRite制作范例
为了更好地说明InstallRite的使用和功能,下面我们以IT写作者最常用的抓图工具“SnagIt 6.2.0汉化版”的安装为例来说明。
第一步:
运行InstallRite,在主界面中选择“安装新的软件并且创建一个安装包”,在弹出的“配置在执行安装时如何进行‘监视’”窗口中点击“配置”按钮,然后在弹出的窗口中设置监视的磁盘、注册表、扩展名等,高级用户可以根据需要修改这些设置以捕获更多附加的信息,对于大多数用户来说,使用默认设置即可。
第二步:
单击“下一步”,InstallRite提示我们要跟踪一个软件的安装进程,必须在跟踪之前创建一个系统的快照。InstallRite的系统快照包含当前系统所处状态的信息,并且在随后的安装向导处理过程中根据快照来找到安装程序造成的所有改变,所以我们必须要为系统做一个快照。
单击“下一步”,InstallRite会自动建立快照。
第三步:
在建立完快照后弹出的窗口中,InstallRite就会要求提供安装软件的程序文件名称,在“要运行的安装程序”项下的文本框中直接填入路径及文件名,或点击其后面的按钮进行选择,设置完成后点击“下一步”。

第四步:
这时InstallRite开始自动打开“SnagIt 6.2.0”的安装程序进行安装,如同平时我们单独安装“SnagIt 6.2.0″一样安装完英文版程序。
由于我们还没有安装“SnagIt 6.2.0汉化程序”及软件的注册和设置,所以在返回的InstallRite安装向导窗口中点击“请稍候….我仍未完成”并在弹出的选项中选择等待的时间,这时InstallRite会在任务托盘中静候我们的调遣。

第五步:
关闭正在运行的SnagIt 6.2.0,运行汉化程序后打开SnagIt 6.2.0,进行软件注册及抓取图像的相关设置,设置完成后退出。
第六步:
点击任务栏中InstallRite的图标返回向导窗口,这时InstallRite会重新扫描系统磁盘、注册表等相关设置选项。
扫描结束后弹出“你要安装的软件的名称?”的对话框让我们输入创建安装包的名称,点击“确定”按钮。
第七步:
在“安装完成”窗口中单击“构建安装包”,选择安装包存放的路径,添入文件名,点击“保存”,然后在“选项”窗口中选择安装选项,如果你制作的安装包需要重新启动系统的话也可以在这里设定。
确定后,InstallRite一会儿就可生成包含软件运行程序、设置参数、注册信息等等数据的全新的“SnagIt 6.2.0汉化版”安装程序包。
以后再需要安装“SnagIt 6.2.0汉化版”时,只需运行安装包立刻就能把SnagIt 6.2.0安装、汉化、注册、设置完成。

用InstallRite生成的安装包要较软件的程序大一些,至于大多少可能因软件的不同而不同;
在制作安装包时,除了必要的运行程序外,最好不要运行其他的应用程序,防止在安装包中增加无用的文件及信息。

InstallRite的特色除了前面提到的外,还有另外一点,就是用它制作的安装包,在安装时,速度明显要比直接安装快得多。但软件也有一个不好的地方,就是你无法改变软件的安装目录等设置,一切都是以前设置好的,多少有一些不方便。
