SSM 経由の Install-WindowsUpdate が失敗する原因と対処( E_ACCESSDENIED )

SSM 経由の Install-WindowsUpdate が失敗する原因と対処( E_ACCESSDENIED )

Session Manager 経由で Install-WindowsUpdate を実行すると E_ACCESSDENIED (0x80070005) で失敗します。今回は、その解決方法を RDP 経由との挙動比較をログとともに紹介します。
2026.05.18

こんにちは、カスタマーサクセス部のやまとです。
Windows EC2 のパッチ適用作業を SSM Session Manager 経由で実施したところ、Install-WindowsUpdateE_ACCESSDENIED (0x80070005) で失敗しました。しかし、同じコマンドを RDP 経由で実行すると成功しました。一体、なぜでしょうか?今回は、実行ログを読み解き、対処を共有します。

サマリー

  • Session Manager 上で Install-WindowsUpdate -AcceptAll -AutoReboot を実行したら E_ACCESSDENIED (0x80070005) で失敗した
  • 同じ EC2 に RDP で接続して同じコマンドを実行したところ、Accepted → Downloaded → Installed の正常フローで進行した
  • 解決策は SSM Run Command の AWS-InstallWindowsUpdates ドキュメントを使うこと
  • 根本原因は Windows Update Agent (WUA) 公式仕様の「リモートから呼び出せない API」の中に IUpdateSession::CreateUpdateInstaller が含まれることに起因する

Install-WindowsUpdate を 3 経路で実行した結果の比較

動作確認環境

  • AWS CLI: aws-cli/2.34.46 (CloudShell)
  • 対象 OS: Microsoft Windows Server 2022 Datacenter(アップデートの検証のため。前バージョンを使用)
  • AMI: ami-0924669baa6ea2263(Windows_Server-2022-Japanese-Full-Base)
  • Instance Type: t3.micro
  • SSM Agent: 3.3.3598.0
  • PSWindowsUpdate モジュール: 2.2.1.5(Binary モジュール)
  • Region: ap-northeast-1
  • 検証日: 2026-05-18

先に結論

Session Manager で Install-WindowsUpdate を直接実行する代わりに、Run Command で AWS-InstallWindowsUpdates ドキュメントを呼び出します。CLI から以下を実行します。

aws ssm send-command \
  --document-name "AWS-InstallWindowsUpdates" \
  --targets "Key=instanceids,Values=<INSTANCE_ID>" \
  --parameters '{"Action":["Install"],"AllowReboot":["True"]}' \
  --timeout-seconds 7200 \
  --region ap-northeast-1

発生した問題

Session Manager で接続後、PSWindowsUpdate モジュールを導入し更新を実行したところ、Accepted の直後に E_ACCESSDENIED で停止しました。

Install-WindowsUpdate 実行時に E_ACCESSDENIED (0x80070005) で停止する様子

実際のログ
PS C:\Windows\system32> Get-Module PSWindowsUpdate

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Binary     2.2.1.5    PSWindowsUpdate                     {Add-WUServiceManager, Enable-WURemoting, Get-WindowsUpdate, Get-WUApiVersion...}

PS C:\Windows\system32> Install-WindowsUpdate -AcceptAll -AutoReboot

X ComputerName Result     KB          Size Title
- ------------ ------     --          ---- -----
1 EC2AMAZ-J... Accepted   KB4052623   19MB Microsoft Defender Antivirus マルウェア対策プラットフォームの更新プログラム ...
1 EC2AMAZ-J... Accepted   KB5087372  130MB 2026-04 Windows Recovery Environment 更新プログラム (KB5087372)
1 EC2AMAZ-J... Accepted   KB890830    83MB 悪意のあるソフトウェアの削除ツール x64 - v5.141 (KB890830)
1 EC2AMAZ-J... Accepted   KB5088862   74MB 2026-05 x64 (KB5088862) 向け Microsoft server operating system version ...
1 EC2AMAZ-J... Accepted   KB5087545   26GB 2026-05 Microsoft server operating system version 21H2 x64 ベース ...
Install-WindowsUpdate : アクセスが拒否されました。 (HRESULT からの例外:0x80070005 (E_ACCESSDENIED))
発生場所 行:1 文字:1
+ Install-WindowsUpdate -AcceptAll -AutoReboot
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-WindowsUpdate], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,PSWindowsUpdate.GetWindowsUpdate

Accepted までは進みますが、ダウンロードに移る前で停止しています。EC2 にアタッチした IAM Role は AmazonSSMManagedInstanceCore が付与済みで、SSM 経由の権限としては問題ない構成でした。

公式:AmazonSSMManagedInstanceCore

RDP で同じコマンドを実行した結果

同じ EC2 インスタンスに RDP で接続し、Administrator として PowerShell(管理者として実行)から同じコマンドを実行しました。

同じ EC2 に RDP 接続して Install-WindowsUpdate を実行すると Accepted → Downloaded → Installed のフローで進行する.png

同じ EC2 に RDP 接続して Install-WindowsUpdate を実行すると Accepted → Downloaded → Installed のフローで進行する2.png

ログまとめ
PS C:\Users\Administrator> Install-WindowsUpdate -AcceptAll -AutoReboot

=== 1回目の実行結果 ===
X ComputerName Result     KB          Size Title
- ------------ ------     --          ---- -----
1 EC2AMAZ-J... Accepted   KB5087372  130MB 2026-04 Windows Recovery Environment 更新プログラム (KB5087372)
1 EC2AMAZ-J... Accepted   KB890830    83MB 悪意のあるソフトウェアの削除ツール x64 - v5.141 (KB890830)
1 EC2AMAZ-J... Accepted   KB5088862   74MB 2026-05 x64 (KB5088862) 向け Microsoft server operating system version 21H2 用 .NET Framework 3.54.8 および 4.8.1 の累積的な更新プログラム
1 EC2AMAZ-J... Accepted   KB5087545   26GB 2026-05 Microsoft server operating system version 21H2 x64 ベース システム用の累積更新プログラム (KB5087545)

=== 2回目の実行結果 ===
X ComputerName Result     KB          Size Title
- ------------ ------     --          ---- -----
1 EC2AMAZ-J... Accepted   KB5087372  130MB 2026-04 Windows Recovery Environment 更新プログラム (KB5087372)
1 EC2AMAZ-J... Accepted   KB890830    83MB 悪意のあるソフトウェアの削除ツール x64 - v5.141 (KB890830)
1 EC2AMAZ-J... Accepted   KB5088862   74MB 2026-05 x64 (KB5088862) 向け Microsoft server operating system version 21H2 用 .NET Framework 3.54.8 および 4.8.1 の累積的な更新プログラム
1 EC2AMAZ-J... Accepted   KB5087545   26GB 2026-05 Microsoft server operating system version 21H2 x64 ベース システム用の累積更新プログラム (KB5087545)
2 EC2AMAZ-J... Downloaded KB5087372  130MB 2026-04 Windows Recovery Environment 更新プログラム (KB5087372)
2 EC2AMAZ-J... Downloaded KB890830    83MB 悪意のあるソフトウェアの削除ツール x64 - v5.141 (KB890830)
2 EC2AMAZ-J... Downloaded KB5088862   74MB 2026-05 x64 (KB5088862) 向け Microsoft server operating system version 21H2 用 .NET Framework 3.54.8 および 4.8.1 の累積的な更新プログラム
2 EC2AMAZ-J... Downloaded KB5087545   26GB 2026-05 Microsoft server operating system version 21H2 x64 ベース システム用の累積更新プログラム (KB5087545)
3 EC2AMAZ-J... Failed     KB5087372  130MB 2026-04 Windows Recovery Environment 更新プログラム (KB5087372)
3 EC2AMAZ-J... Installed  KB890830    83MB 悪意のあるソフトウェアの削除ツール x64 - v5.141 (KB890830)
etc.

E_ACCESSDENIED は発生せず、Accepted → Downloaded → Installed/Failed と正常なフローで進行しました。同じ EC2 上で同じコマンドを実行しても、Session Manager 経由では失敗し、RDP 経由では成功することが観測されました。

原因

Microsoft Learn の WUA SDK ドキュメント「Using WUA From a Remote Computer」に、リモートから呼び出せる API と呼び出せない API の一覧が明文化されています。
呼び出せない API の一覧に IUpdateSession::CreateUpdateInstaller が含まれます

参考: Using WUA From a Remote Computer - Microsoft Learn

The Windows Update Agent (WUA) API can be used by a user on a remote computer or by an application that is running on a remote computer. However, the remote user or application must have administrator privileges.

The following list contains interfaces and properties that are not available to remote users and applications:

  • IUpdateSession::CreateUpdateDownloader
  • IUpdateSession::CreateUpdateInstaller
  • WebProxy Property of IUpdateSession

PSWindowsUpdate モジュールは Binary モジュール(PSWindowsUpdate.dll)として配布されており、Install-WindowsUpdate の実装ソースは公開されていません。
そのため WUA のどの API を内部で呼び出しているかは直接確認できませんが、観測した事象(Session Manager 経由は失敗、RDP 経由は成功)と上記公式仕様を突き合わせると、Install-WindowsUpdate の処理過程で CreateUpdateInstaller の呼び出しが発生し、Session Manager 経由ではこれが「リモート呼び出し」と判定されて拒否されているものと考えられます。
RDP では対話的ログオンセッションとなり、同じコマンドが正常に完走したことも、この見立てと整合している気がします!

解決手順

1. PSWindowsUpdate モジュール導入

モジュール自体のインストールは Session Manager 経由でも実行できました。

Set-PSRepository PSGallery -InstallationPolicy Trusted
Install-PackageProvider NuGet -Force
Install-Module PSWindowsUpdate -Force -Confirm:$false
Import-Module PSWindowsUpdate

2. インストールは Run Command 経由で実施する

Install-WindowsUpdate ではなく、AWS マネージドドキュメント AWS-InstallWindowsUpdates を呼び出します。

参考: SSM Command documents for patching managed nodes - AWS Systems Manager

AWS-InstallWindowsUpdates

Windows Server マネージドノードに更新ファイルをインストールします。すべての AWS リージョン で利用できます。

この SSM ドキュメントには、特定の更新をインストール (Include Kbs パラメータを使用) するか、特定の分類やカテゴリのパッチをインストールするが、パッチのコンプライアンス情報が不要な場合の基本パッチ適用機能について記載されています。

レガシードキュメント AWS-InstallMissingWindowsUpdates と同等の動作にしたい場合のパラメータも公式に記載があります。

このレガシー SSM ドキュメントから同様の結果を得るには、推奨されている置換ドキュメント (AWS-InstallWindowsUpdates) で次のパラメータ設定を使用します。

  • Action = Install
  • Allow Reboot = True

これに従い、CLIで以下を実行します。

aws ssm send-command \
  --document-name "AWS-InstallWindowsUpdates" \
  --targets "Key=instanceids,Values=<INSTANCE_ID>" \
  --parameters '{"Action":["Install"],"AllowReboot":["True"]}' \
  --timeout-seconds 7200 \
  --region ap-northeast-1

Install-WindowsUpdate_RunCommand_result

Install-WindowsUpdate_RunCommand

出力ログ(文字化けはしますが、内容に問題は無し)
05/17/2026 20:46:37 UTC | Info | Searching for Windows Updates.
05/17/2026 20:47:00 UTC | Info | Found 4 available Windows Updates.
05/17/2026 20:47:01 UTC | Info | 2026-04 Windows Recovery Environment �X�V�v���O���� (KB5087372) - Published date: 04/14/2026
05/17/2026 20:47:01 UTC | Info | ���ӂ̂����\�t�g�E�F�A�̍폜�c�[�� x64 - v5.141 (KB890830) - Published date: 05/12/2026
05/17/2026 20:47:01 UTC | Info | 2026-05 x64 (KB5088862) ���� Microsoft server operating system version 21H2 �p .NET Framework 3.5�A4.8 ������ 4.8.1 �̗ݐϓI�ȍX�V�v���O���� - Published date: 05/12/2026
05/17/2026 20:47:01 UTC | Info | 2026-05 Microsoft server operating system version 21H2 x64 �x�[�X �V�X�e���p�̗ݐύX�V�v���O���� (KB5087545) - Published date: 05/12/2026
05/17/2026 20:47:01 UTC | Info | Downloading Windows Updates.
05/17/2026 20:47:15 UTC | Info | Successfully Downloaded: 2026-04 Windows Recovery Environment �X�V�v���O���� (KB5087372) - Published date: 04/14/2026
05/17/2026 20:47:22 UTC | Info | Successfully Downloaded: ���ӂ̂����\�t�g�E�F�A�̍폜�c�[�� x64 - v5.141 (KB890830) - Published date: 05/12/2026
05/17/2026 20:47:33 UTC | Info | Successfully Downloaded: 2026-05 x64 (KB5088862) ���� Microsoft server operating system version 21H2 �p .NET Framework 3.5�A4.8 ������ 4.8.1 �̗ݐϓI�ȍX�V�v���O���� - Published date: 05/12/2026
05/17/2026 20:48:35 UTC | Info | Successfully Downloaded: 2026-05 Microsoft server operating system version 21H2 x64 �x�[�X �V�X�e���p�̗ݐύX�V�v���O���� (KB5087545) - Published date: 05/12/2026
05/17/2026 20:48:35 UTC | Info | 4 Windows Updates will be installed.
05/17/2026 21:02:44 UTC | Info | Installed: 2026-04 Windows Recovery Environment �X�V�v���O���� (KB5087372)
05/17/2026 21:04:46 UTC | Info | Installed: ���ӂ̂����\�t�g�E�F�A�̍폜�c�[�� x64 - v5.141 (KB890830)
05/17/2026 21:05:32 UTC | Info | Installed: 2026-05 x64 (KB5088862) ���� Microsoft server operating system version 21H2 �p .NET Framework 3.5�A4.8 ������ 4.8.1 �̗ݐϓI�ȍX�V�v���O����
05/17/2026 21:29:11 UTC | Info | Installed: 2026-05 Microsoft server operating system version 21H2 x64 �x�[�X �V�X�e���p�̗ݐύX�V�v���O���� (KB5087545)
05/17/2026 21:29:15 UTC | Info | Windows Updates were successfully installed. Rebooting.
05/17/2026 21:33:55 UTC | Info | Searching for Windows Updates.
05/17/2026 21:34:45 UTC | Info | Searching for Windows Updates.
05/17/2026 21:35:12 UTC | Info | Found 1 available Windows Updates.
05/17/2026 21:35:12 UTC | Info | Microsoft Defender Antivirus �̃Z�L�����e�B �C���e���W�F���X�X�V�v���O���� - KB2267602 (�o�[�W���� 1.449.668.0) - ���݂̃`���l�� (�L��) - Published date: 05/17/2026
05/17/2026 21:35:12 UTC | Info | Downloading Windows Updates.
05/17/2026 21:35:15 UTC | Info | Successfully Downloaded: Microsoft Defender Antivirus �̃Z�L�����e�B �C���e���W�F���X�X�V�v���O���� - KB2267602 (�o�[�W���� 1.449.668.0) - ���݂̃`���l�� (�L��) - Published date: 05/17/2026
05/17/2026 21:35:15 UTC | Info | 1 Windows Updates will be installed.
05/17/2026 21:36:02 UTC | Info | Installed: Microsoft Defender Antivirus �̃Z�L�����e�B �C���e���W�F���X�X�V�v���O���� - KB2267602 (�o�[�W���� 1.449.668.0) - ���݂̃`���l�� (�L��)
05/17/2026 21:36:03 UTC | Info | Windows Updates were successfully installed. Rebooting.
05/17/2026 21:37:29 UTC | Info | Searching for Windows Updates.
05/17/2026 21:37:44 UTC | Info | Found 0 available Windows Updates.

AllowReboot=True を指定することで、更新適用後の再起動と、再起動後に追加検出された更新(KB2267602)の処理までドキュメント側で完結しました。

3. 完了確認

aws ssm get-command-invocation \
  --command-id <COMMAND_ID> \
  --instance-id <INSTANCE_ID> \
  --region ap-northeast-1 \
  --query 'StandardOutputContent' \
  --output text

出力末尾に Found 0 available Windows Updates が含まれていれば完了です。

それでも解決しない場合

Run Command の Status が Failed になる場合は、AWS 公式の「External reboot interruptions」の項に該当している可能性があります。

参考: SSM Command documents for patching managed nodes - AWS Systems Manager

外部再起動による中断
パッチのインストール中にノード上のシステムによって再起動が実行された場合 (例えば、ファームウェアや SecureBoot などの機能に更新プログラムを適用するため)、パッチが正常にインストールされても、パッチ適用ドキュメントの実行が中断されて失敗としてマークされる場合があります。SSM Agent が外部再起動全体でドキュメントの実行状態を維持および再開できないために発生します。

実行が失敗した後にパッチ適用のインストールステータスを確認するには、Scan パッチ適用オペレーションを実行し、Patch Manager でパッチコンプライアンスデータを確認して現在のコンプライアンス状態を評価します。

つまり、Run Command の Status が Failed でも実際には更新が適用済みのケースがあります。
Get-WUHistory または Patch Manager の Scan で実態を確認してください。

学び

「Install-WindowsUpdate が動かない」と聞くと権限不足を疑いがちですが、Microsoft 公式仕様として WUA の CreateUpdateInstaller がリモート呼び出し不可と定められています。
Session Manager の実行コンテキストがこれに該当している可能性が高く、PSWindowsUpdate の Install-WindowsUpdate は構造的に失敗していると考えられます。

一方、AWS マネージドドキュメント AWS-InstallWindowsUpdates を使えば SSM 経由でも更新を完走させられます!
Run Command 経由なら実行履歴も SSM コンソールに自動保持されるため、操作証跡の確保も容易になります!

まとめ

  • Session Manager 上の Install-WindowsUpdateE_ACCESSDENIED (0x80070005) で失敗する
  • Microsoft 公式仕様で WUA の IUpdateSession::CreateUpdateInstaller はリモート呼び出し不可と明記されている
  • 同じ EC2 に RDP で接続して同じコマンドを実行すると Accepted → Downloaded → Installed のフローで成功した
  • 解決策は Run Command の AWS-InstallWindowsUpdates ドキュメントを使うこと
  • Run Command 経由なら再起動を跨いだ更新ループも自動化される

その他参考資料

  • Using WUA From a Remote Computer - Microsoft Learn

    The following list contains interfaces and properties that are not available to remote users and applications:

    • IUpdateSession::CreateUpdateDownloader
    • IUpdateSession::CreateUpdateInstaller
  • IUpdateInstaller (wuapi.h) - Microsoft Learn

    Installs or uninstalls updates from or onto a computer.
    This interface can be instantiated by using the UpdateInstaller coclass. Use the Microsoft.Update.Installer program identifier to create the object.

AWS運用エンジニア(24x365)募集

クラウド運用チームで AWS エンジニアを募集中!クラウドに関する Web システムや基幹システムの運用保守経験をお持ちの方を歓迎します。先輩エンジニアによる丁寧な OJT 研修、AWS 資格取得支援など充実のサポート体制で、AWS未経験からでも安心してAWS運用エンジニアとしてのキャリアをスタートできます。

▼ 詳細・応募はこちら

https://www.career-cloud.asia/mid/entry/job/offer/annotation/detail/4958

※ カジュアル面談も実施中!まずは話を聞いてみたいという方も大歓迎です。

AWS運用代行・サーバー監視のご案内

クラスメソッド マネージドサービスは、AWS国内支援実績No.1のクラスメソッドが提供する、クラウド特有の対応やクラウド技術者の不足に課題をお持ちのお客様向けのAWS運用トータル支援サービスです。
監視や運用支援にとどまらず、お客様のクラウド利用を最適化し日々の負担を最小化することで、お客様のビジネス効果の最大化を支援します。

https://classmethod.jp/aws/services/operating/

クラスメソッドオペレーションズ株式会社について

クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。

この記事をシェアする

関連記事