WinRE(Windows回復環境)でOLE Automationの呼び出しが失敗し、IDispatch::InvokeやBYREFに関連するエラーが発生する場合は、Windows 11のバージョンに対応したSafe OS Dynamic Updateを適用します。Windows 11 24H2/25H2はKB5101719、23H2はKB5099551が対象です。適用後のWinREは、24H2/25H2が10.0.26100.8875、23H2が10.0.22621.7376になります。
この問題は、2026年6月のセキュリティ更新後、一部のOLE Automation処理で発生するようになった互換性問題です。Microsoftは2026年7月14日公開のSafe OS Dynamic Updateで「修正済み」としています。通常起動中のWindowsではなく、WinRE内で動作する回復ツールや独自アプリケーションで問題が起きている場合は、通常の累積更新だけで判断せず、WinRE自体の更新状態を確認することが重要です。(マイクロソフトサポート)
結論:Windows 11のバージョンに合わせてSafe OS更新を選ぶ
適用する更新プログラムは、通常起動中のWindows 11のバージョンによって決まります。
| Windows 11のバージョン | 必要な更新 | 適用後のWinREバージョン |
|---|---|---|
| Windows 11 25H2 | KB5101719 | 10.0.26100.8875 |
| Windows 11 24H2 | KB5101719 | 10.0.26100.8875 |
| Windows 11 23H2 | KB5099551 | 10.0.22621.7376 |
24H2と25H2は同じKB5101719ですが、Microsoft Update Catalogには24H2用と25H2用が別々に登録されています。手動でダウンロードするときは、KB番号だけでなく、WindowsのバージョンとCPUアーキテクチャの両方が一致する項目を選択してください。23H2にはKB5101719ではなく、KB5099551を使用します。(Microsoft Update Catalog)
OLE/IDispatch::Invoke失敗の原因
今回の問題は、WinREに含まれるOLE Automationコンポーネントのoleaut32.dllに関係しています。
Microsoftによると、2026年6月のセキュリティ更新によって、次の条件を満たすCOMメソッド呼び出しが失敗することがありました。
IDispatch::Invokeを使用してCOMメソッドを呼び出している- 引数に
BYREF、つまり参照渡しのパラメーターを使用している - 複数の
BYREFパラメーターが同じ基礎ストレージを共有している
簡単にいえば、同じ変数を参照渡しで複数の引数に利用した場合などに、OLE Automation側のパラメーター管理が正常に行われないことがありました。
発生する症状はアプリケーションによって異なりますが、Microsoftは次のような失敗を挙げています。
- パラメーターのマーシャリングエラー
- COMメソッドの呼び出し失敗
- Automation呼び出しの異常終了
- 回復ツールや診断ツールの処理停止
2026年7月のSafe OS Dynamic Updateでは、パラメーターの所有権管理が修正され、従来期待されていたOLE Automationの動作が復元されています。(マイクロソフトサポート)
用語を整理すると理解しやすい
| 用語 | 意味 |
|---|---|
| OLE Automation | アプリケーションやスクリプトからCOMオブジェクトを操作する仕組み |
| COM | Windows上でソフトウェア部品を相互利用するための技術 |
| IDispatch::Invoke | COMオブジェクトのプロパティーやメソッドを動的に呼び出す処理 |
| BYREF | 値のコピーではなく、元の変数への参照を引数として渡す方式 |
| マーシャリング | 呼び出し元と呼び出し先の間で引数や戻り値を変換・受け渡しする処理 |
| WinRE | Windowsの修復、初期化、スタートアップ修復などに使われる回復環境 |
| Safe OS Dynamic Update | WinREなどのSafe OS環境を更新するための更新プログラム |
このSafe OS更新が必要か判断する方法
OLE関連のエラーが出ているからといって、すべてが今回の不具合に該当するわけではありません。次の順番で切り分けます。
エラーがWinRE内で発生しているか確認する
今回のKBが更新するのは、通常起動中のWindowsではなくWinREです。
たとえば、次の場面で失敗する場合は対象となる可能性があります。
- 「詳細オプション」から起動した回復環境
- OEMが提供する独自の回復ツール
- 企業がWinREに追加した診断・復旧アプリケーション
- WinRE内でCOMやOLE Automationを使用するカスタム処理
- 更新済みの展開イメージや回復メディアから起動したときの処理
一方、Windowsへ通常ログインした後にExcel、VBA、業務アプリなどでOLEエラーが出ているだけなら、WinRE向けSafe OS Dynamic Updateとは別の問題である可能性があります。
通常OSで起きるOLEエラーを、WinRE用KBだけで直そうとしないことが重要です。
Windows 11のバージョンとアーキテクチャを確認する
管理者としてPowerShellを開き、次のコマンドを実行します。
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' |
Select-Object ProductName, DisplayVersion, CurrentBuild, UBR
(Get-CimInstance Win32_OperatingSystem).OSArchitecture
確認する項目は次の2つです。
DisplayVersion:23H2、24H2、25H2のいずれかOSArchitecture:64-bitまたはARM 64-bit
選択基準は次のとおりです。
| 確認結果 | 選ぶパッケージ |
|---|---|
| 24H2、64-bit | KB5101719の24H2 x64版 |
| 24H2、ARM 64-bit | KB5101719の24H2 arm64版 |
| 25H2、64-bit | KB5101719の25H2 x64版 |
| 25H2、ARM 64-bit | KB5101719の25H2 arm64版 |
| 23H2、64-bit | KB5099551の23H2 x64版 |
| 23H2、ARM 64-bit | KB5099551の23H2 arm64版 |
KB5101719には24H2/25H2それぞれのx64版とArm64版があり、KB5099551には23H2のx64版とArm64版があります。(Microsoft Update Catalog)
Safe OS Dynamic Updateの適用方法
一般的なPCでは、まずWindows Updateによる自動適用を確認します。オフライン端末、管理された端末、展開イメージ、回復メディアを更新する場合は、Microsoft Update Catalogからパッケージを取得し、WinREイメージへ手動で追加します。
通常のPCはWindows Updateを優先する
KB5101719とKB5099551はWindows Updateで提供され、自動的にダウンロードおよびインストールされます。Microsoft Update Catalogからのスタンドアロンパッケージ取得にも対応しています。
一方、Microsoftの公開情報では、これらの更新についてWindows Server Update Servicesの配信チャネルは「利用不可」とされています。そのため、WSUSだけで更新を管理している環境では、WinREが更新されているかを個別に確認する必要があります。(マイクロソフトサポート)
Windows Updateを利用する場合は、次の手順で確認します。
- 「設定」を開く
- 「Windows Update」を選択する
- 「更新プログラムのチェック」を実行する
- 利用可能な更新をすべてインストールする
- WinREのバージョンまたはWinREAgentイベントを確認する
MicrosoftのKBでは、適用の前提条件はなく、適用後のデバイス再起動も不要とされています。ただし、保留中のWindows更新がある場合や、回復パーティションを操作する場合は、事前に再起動しておく方が安全です。また、更新をWindowsイメージへ適用すると削除できません。(マイクロソフトサポート)
Microsoft Update Catalogから手動で取得する
手動適用では、Microsoft Update Catalogで次のKB番号を検索します。
KB5101719
または、
KB5099551
検索結果から、次の3項目が一致するパッケージを選びます。
- Windows 11のバージョン
- x64またはArm64
- 「Safe OS Dynamic Update」と記載された更新
同じKB番号でも、24H2用パッケージを25H2へ流用するのではなく、表示されている対象バージョンに合った項目を選択してください。
稼働中のPCのWinREへ手動適用する手順
以下は、Microsoftが案内しているWinREイメージ更新手順を、今回のKB向けに整理したものです。操作は管理者権限のコマンドプロンプトで行います。(Microsoft Learn)
事前確認
最初にWinREの状態と配置場所を確認します。
reagentc /info
次の項目を確認してください。
Windows RE status: Enabled
Windows RE location: \\?\GLOBALROOT\device\harddisk0\partition4\Recovery\WindowsRE
実際のパーティション番号はPCによって異なります。
Windows RE statusがDisabledの場合は、そのまま手動適用を進めず、WinREイメージの配置と登録状態を先に確認します。
WinREをマウントする
空のマウントフォルダーを作成します。
md C:\mount
WinREをマウントします。
ReAgentC.exe /mountre /path C:\mount
C:\mountに以前のファイルが残っている場合は、別の空フォルダーを使用してください。
更新パッケージを追加する
ダウンロードしたMSUファイルをC:\Updates\update.msuへ配置した場合は、次のコマンドを実行します。
Dism /Add-Package /Image:C:\mount\ /PackagePath:"C:\Updates\update.msu"
CAB形式のパッケージを使用する場合は、次のように指定します。
Dism /Add-Package /Image:C:\mount\ /PackagePath:"C:\Updates\dynamicupdate.cab"
処理が正常終了するまで、コマンドプロンプトを閉じたり、PCを再起動したりしないでください。
パッケージの登録状態を確認する
WinREをアンマウントする前に、パッケージ一覧を確認します。
Dism /Image:C:\mount\ /Get-Packages
一覧から、適用したKB番号を含むPackage Identityを探します。
24H2/25H2では次の文字列を確認します。
KB5101719
23H2では次の文字列を確認します。
KB5099551
対象パッケージの状態が次のようになっていれば、WinREイメージへの追加は成功しています。
State : Installed
コンポーネントをクリーンアップする
Microsoftの手順に沿って、置き換え済みコンポーネントをクリーンアップします。
Dism /Image:C:\mount\ /Cleanup-Image /StartComponentCleanup /ResetBase
変更を保存してアンマウントする
ReAgentC.exe /unmountre /path C:\mount /commit
/commitを付け忘れると、加えた変更が保存されません。
BitLockerまたはデバイス暗号化を使用している場合
Microsoftは、BitLockerまたはデバイス暗号化で保護されたPCでは、WinREを一度無効化してから再度有効化するよう案内しています。
reagentc /disable
reagentc /enable
reagentc /info
最後のreagentc /infoで、Windows RE statusがEnabledになっていることを確認します。(Microsoft Learn)
WinREへの適用結果を確認する方法
適用確認は、KBパッケージの登録状態とWinREバージョンの両方で行うと確実です。
DISMでKBパッケージを確認する
Safe OS Dynamic Updateを手動で追加した場合、Microsoft LearnではDISM /Get-Packagesを使用し、対象KBの状態がInstalledであることを確認するよう案内しています。
Dism /Image:C:\mount\ /Get-Packages
これは、WinREイメージを再度マウントした状態でも確認できます。
WinREバージョンを確認する
まずWinREの配置場所を確認します。
reagentc /info
表示されたWindows RE locationにwinre.wimを付加し、DISMで情報を取得します。
Dism /Get-ImageInfo /ImageFile:\\?\GLOBALROOT\device\harddisk0\partition4\Recovery\WindowsRE\winre.wim /index:1
harddisk0やpartition4は環境に合わせて置き換えてください。
確認すべき目標値は次のとおりです。
| 対象 | 目標バージョン |
|---|---|
| Windows 11 24H2/25H2 | 10.0.26100.8875 |
| Windows 11 23H2 | 10.0.22621.7376 |
DISMの表示では、ビルド番号とリビジョンが別項目として示されることがあります。たとえばVersionが10.0.26100、ServicePack Buildが8875なら、完全なバージョンは10.0.26100.8875と判断します。
Microsoftの個別KBページは上記の目標バージョンを示しています。一方、一般的なWinRE手動更新手順では、Dynamic Updateの確認にパッケージ一覧を使うことが推奨されています。そのため、バージョン番号だけで完了とせず、KB番号とInstalled状態も確認するのが安全です。(マイクロソフトサポート)
イベントビューアーで確認する
Windows Update経由でWinREが更新された場合は、WinREAgentのイベントでも確認できます。
- イベントビューアーを開く
- 「Windowsログ」を展開する
- 「システム」を選択する
- 「検索」で
WinREAgentを探す - イベントID
4501を確認する
正常にサービスされた場合は、WinREの更新成功とバージョンを示すイベントが記録されます。Microsoftは、WinREAgentのイベントが確認できない場合やDISMで手動適用した場合には、DISMによる確認を推奨しています。(マイクロソフトサポート)
展開イメージや回復メディアにも更新を反映する
組織でWindowsを展開している場合、既存PCだけを更新しても、古いwinre.wimを含む展開イメージから再セットアップすると問題が再発する可能性があります。
次の対象も確認してください。
- Windows展開用の
install.wim - OEMまたは企業独自の回復イメージ
- Configuration Managerなどで使用するOSイメージ
- USB回復メディア
- 保守担当者が使用するオフライン修復イメージ
- VDIやテンプレートに組み込まれたWinRE
オフラインイメージでは、install.wimをマウントし、その中に含まれるwinre.wimをさらにマウントして更新します。
md C:\mount\windows
md C:\mount\winre
Dism /Mount-Wim /WimFile:C:\Images\install.wim /Index:1 /MountDir:C:\mount\windows
attrib -h -a -s C:\mount\windows\Windows\System32\Recovery\winre.wim
Dism /Mount-Wim /WimFile:C:\mount\windows\Windows\System32\Recovery\winre.wim /Index:1 /MountDir:C:\mount\winre
Dism /Add-Package /Image:C:\mount\winre /PackagePath:"C:\Updates\update.msu"
Dism /Image:C:\mount\winre /Get-Packages
Dism /Image:C:\mount\winre /Cleanup-Image /StartComponentCleanup /ResetBase
Dism /Unmount-Image /MountDir:C:\mount\winre /Commit
Dism /Unmount-Image /MountDir:C:\mount\windows /Commit
install.wimに複数のインデックスが含まれている場合は、実際に使用する各インデックスを更新する必要があります。インデックス1だけを更新しても、別インデックスから展開されるエディションには反映されません。WinREを含むオフラインWindowsイメージでは、WindowsイメージとWinREイメージの両方を正しい順序でコミットします。(Microsoft Learn)
適用に失敗する場合の確認ポイント
| 症状 | 主な確認ポイント | 対処 |
|---|---|---|
| 更新プログラムを適用できない | Windowsバージョンが違う | 23H2、24H2、25H2を再確認する |
| パッケージが適用対象外と表示される | x64とArm64の選択ミス | OSArchitectureを確認して再取得する |
| KB5101719が適用できない | 23H2を使用している | KB5099551を使用する |
ReAgentC /mountreが失敗する | WinREが無効、配置場所が未登録、マウント先が空でない | reagentc /infoとマウントフォルダーを確認する |
| DISMが容量不足で失敗する | 回復パーティションの空き容量不足 | 回復パーティションの容量を確認する |
| 適用後もOLEエラーが続く | エラーが通常OS側で発生している | WinREと通常OSのどちらで再現するか切り分ける |
| WinREが起動しなくなった | コミットやWinRE登録が不完全 | reagentc /disableとreagentc /enableで再登録する |
| 更新済みPCでは直るが再展開後に再発する | 展開元のwinre.wimが古い | マスターイメージにもSafe OS更新を適用する |
Microsoftは、WinRE更新を正常に適用するため、回復パーティションに250MBの空き容量を確保することを推奨しています。容量拡張が必要な場合は、自己流でパーティションを削除・再作成せず、Microsoftが公開している手順やスクリプトを使用してください。パーティション操作前には、保留中の処理を完了させるためPCを再起動し、回復キーとバックアップを確認しておくことも重要です。(Microsoft Learn)
更新後は実際の回復処理までテストする
KBのインストール成功だけでは、カスタム回復ツールが正常に動作することまでは保証できません。特に企業独自のCOMコンポーネントやOEM回復アプリを使用している場合は、実際にWinREへ起動して確認します。
最低限、次の項目をテストしてください。
- WinREが正常に起動する
- キーボードとマウスが使用できる
- カスタム回復アプリが起動する
IDispatch::Invokeを使用する処理が完了する- BYREF引数を含むCOM呼び出しが成功する
- スタートアップ修復など標準の回復機能が起動する
- BitLocker環境で回復キー要求やドライブ認識に異常がない
- 更新後のWinREバージョンとKB登録状態を記録できる
大量展開では、いきなり全端末へ適用せず、Windowsバージョン、CPUアーキテクチャ、暗号化状態、回復パーティション構成が異なる端末をテスト対象に含めます。
まとめ:KB番号だけでなくWinREの更新結果まで確認する
WinREで発生するOLE Automation、IDispatch::Invoke、BYREF関連の失敗は、2026年7月14日公開のSafe OS Dynamic Updateで修正されています。
適用する更新は次のとおりです。
- Windows 11 24H2/25H2:KB5101719
- Windows 11 23H2:KB5099551
- 24H2/25H2の目標WinREバージョン:10.0.26100.8875
- 23H2の目標WinREバージョン:10.0.22621.7376
まずWindows 11のDisplayVersionとアーキテクチャを確認し、対応するパッケージを選択します。適用後は、DISM /Get-Packagesで対象KBがInstalledになっていることを確認し、WinREバージョンと実際の回復処理もテストしてください。
通常起動中のWindowsで発生するOLEエラーと、WinRE内で発生するOLEエラーを混同しないことが、最も重要な切り分けポイントです。

コメント