WinREのOLE/IDispatch::Invoke失敗を修正するSafe OS更新と適用手順

WinRE(Windows回復環境)でOLE Automationの呼び出しが失敗し、IDispatch::InvokeBYREFに関連するエラーが発生する場合は、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 25H2KB510171910.0.26100.8875
Windows 11 24H2KB510171910.0.26100.8875
Windows 11 23H2KB509955110.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オブジェクトを操作する仕組み
COMWindows上でソフトウェア部品を相互利用するための技術
IDispatch::InvokeCOMオブジェクトのプロパティーやメソッドを動的に呼び出す処理
BYREF値のコピーではなく、元の変数への参照を引数として渡す方式
マーシャリング呼び出し元と呼び出し先の間で引数や戻り値を変換・受け渡しする処理
WinREWindowsの修復、初期化、スタートアップ修復などに使われる回復環境
Safe OS Dynamic UpdateWinREなどの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-bitKB5101719の24H2 x64版
24H2、ARM 64-bitKB5101719の24H2 arm64版
25H2、64-bitKB5101719の25H2 x64版
25H2、ARM 64-bitKB5101719の25H2 arm64版
23H2、64-bitKB5099551の23H2 x64版
23H2、ARM 64-bitKB5099551の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を利用する場合は、次の手順で確認します。

  1. 「設定」を開く
  2. 「Windows Update」を選択する
  3. 「更新プログラムのチェック」を実行する
  4. 利用可能な更新をすべてインストールする
  5. 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 statusDisabledの場合は、そのまま手動適用を進めず、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 statusEnabledになっていることを確認します。(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 locationwinre.wimを付加し、DISMで情報を取得します。

Dism /Get-ImageInfo /ImageFile:\\?\GLOBALROOT\device\harddisk0\partition4\Recovery\WindowsRE\winre.wim /index:1

harddisk0partition4は環境に合わせて置き換えてください。

確認すべき目標値は次のとおりです。

対象目標バージョン
Windows 11 24H2/25H210.0.26100.8875
Windows 11 23H210.0.22621.7376

DISMの表示では、ビルド番号とリビジョンが別項目として示されることがあります。たとえばVersion10.0.26100ServicePack Build8875なら、完全なバージョンは10.0.26100.8875と判断します。

Microsoftの個別KBページは上記の目標バージョンを示しています。一方、一般的なWinRE手動更新手順では、Dynamic Updateの確認にパッケージ一覧を使うことが推奨されています。そのため、バージョン番号だけで完了とせず、KB番号とInstalled状態も確認するのが安全です。(マイクロソフトサポート)

イベントビューアーで確認する

Windows Update経由でWinREが更新された場合は、WinREAgentのイベントでも確認できます。

  1. イベントビューアーを開く
  2. 「Windowsログ」を展開する
  3. 「システム」を選択する
  4. 「検索」でWinREAgentを探す
  5. イベントID4501を確認する

正常にサービスされた場合は、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 /disablereagentc /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::InvokeBYREF関連の失敗は、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エラーを混同しないことが、最も重要な切り分けポイントです。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次