使用 Patch Manager AWS-RunPatchBaseline 文件時,如何對與 Amazon EC2 Windows 執行個體相關的修補問題進行疑難排解?

3 分的閱讀內容
0

我在嘗試修補 Amazon Elastic Compute Cloud (Amazon EC2) Windows 執行個體,但我收到錯誤訊息。我想對使用 AWS-RunPatchBasline 文件修補 Windows 節點時出現的問題進行疑難排解。

簡短描述

使用 Patch Manager (AWS Systems Manager 的一項功能,AWS-RunPatchBaseline 文件) 時可能會遇到下列問題:

  • 節點無法連線至 Amazon Simple Storage Service (Amazon S3) 端點
  • 權杖請求無效
  • 您無法搜尋 Windows 更新
  • 下載更新後無法安裝
  • 缺少修補程式

解決方法

節點無法連線至 Amazon S3 端點

當 Amazon S3 無法連線至遠端伺服器時,您可能會看到下列錯誤訊息範例:

「Invoke-PatchBaselineOperation : 基礎連線已關閉: 傳送時發生意外錯誤。」

-或-

「執行 PatchBaselineOperations 時發生錯誤: 無法連線至遠端伺服器」

發生上述錯誤是因為節點無法連線至 S3 端點。或者,連接到執行個體的 AWS Identity and Access Management (IAM) 設定檔缺少進行 S3 連線所需的最低權限。

若要解決這些錯誤,請完成下列步驟:

1.    檢查執行個體設定檔的 IAM 權限是否已附加至節點。如需最低權限,請參閱 AWS Systems Manager 代理程式 (SSM 代理程式) 與 AWS 受管 S3 儲存貯體的通訊

2.    若要檢查與 Amazon S3 端點的連線,請在 PowerShell 中執行下列命令:
**注意:**用您的 AWS 區域 ID 取代 <region_id>

tnc s3.<region_id>.amazonaws.com -port 443

3.    如果先前的測試失敗,則檢查將執行個體連線至 Systems Manager 端點的方式:

  • 如果執行個體位於公有子網路中,請確保連接至執行個體的 RouteTable 使用網際網路閘道來路由至 0.0.0.0/0。
  • 如果執行個體位於私有子網路中,則使用 NAT 閘道進行連線、建立 S3 閘道 VPC 端點建立介面 VPC 端點

權杖請求無效

由於權杖請求無效,您可能會看到下列錯誤訊息範例:

「Invoke-PatchBaselineOperation 失敗: 請求中包含的安全權杖無效:

-或-

「Invoke-PatchBaselineOperation: 執行個體 Id i-00fe5918abcdef12 與憑證不相符」

當 SSM 代理程式使用的憑證與您預期使用的憑證不同時,就會發生上述錯誤。例如,SSM 代理程式使用共用憑證檔案,而非執行個體設定檔。

**注意:**對於 SSM 代理程式 3.1.1927.0 或更早版本,SSM 代理程式會依照預設憑證供應商鏈結所指定的順序尋找憑證。這也適用於 Amazon Elastic Container Service (Amazon ECS) 容器執行個體。

SSM 代理程式 3.2.183.0 版開始,SSM 代理程式會在 /var/lib/amazon/ssm/credentials (Linux 和 macOS) 或 %PROGRAMFILES%\Amazon\SSM\credentials (Windows Server) 中儲存一組臨時憑證。臨時憑證具有您為所選 IAM 角色指定的權限。IAM 角色具有來自預設主機管理組態或連接到受管節點之執行個體設定檔的權限。

若要解決這些錯誤,請將 SSM 代理程式更新至 3.2.183.0 或更新版本,以便它可以從 SSM 資料夾中的檔案擷取憑證。

若要使用舊版 SSM 代理程式,請尋找共用憑證,刪除它們,然後再次測試修補程式。

若要尋找憑證,請完成以下步驟:

1.    按下 Windows 鍵,然後輸入環境變數

2.    尋找名為 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY的變數。

3.    刪除憑證,然後再次測試修補程式。

共用憑證位置

以下是共用憑證位置的範例:

SystemsProfile

  • C:\Windows\System32\config\systemprofile\.aws\
  • C:\Windows\System32\config\systemprofile\AppData\Local\AWSToolkit\RegisteredAccounts.json

使用者設定檔

  • %USERPROFILE%\.aws\
  • %USERPROFILE%\AppData\Local\AWSToolkit\RegisteredAccounts.json

您無法搜尋 Windows 更新

當您無法搜尋 Windows 更新時,您可能會看到下列錯誤訊息範例:

「Invoke-PatchBaselineOperation : 例外狀況詳細資訊: 嘗試搜尋 Windows Update 時發生錯誤。錯誤訊息: 來自 HRESULT 的例外狀況: 0x80240437」

-或-

「Invoke-PatchBaselineOperation : 例外狀況詳細資訊: 嘗試搜尋 Windows Update 時發生錯誤。錯誤訊息: 來自 HRESULT 的例外狀況: 0x80072EE2」

上述錯誤與 Windows Update 元件、缺少與 Windows Update Catalog 的連線或 Windows Server Update Services (WSUS) 有關。

若要解決這些錯誤,請完成下列步驟:

1.    檢查與 Windows Update 的連線。判斷執行個體是否透過代理或使用 WSUS 直接連線至 Microsoft 修補程式來源。

2.    您可以使用群組政策或登錄索引鍵來設定 WSUS 伺服器。若要檢查 WSUS 組態,請執行下列命令:

檢查群組政策:

gpresult /H %USERPROFILE%\Desktop\report.html

檢查可能手動設定的登錄索引鍵:

Get-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' | Select-Object AUOptions, NoAutoUpdate,  UseWUServer
Get-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate' | Select-Object DisableWindowsUpdateAccess,  WUServer, WUStatusServer

若要檢查代理組態,請執行下列命令:

**注意:**您必須在執行修補操作的系統使用者帳戶 S-1-5-18 環境下取得代理組態。若要取得組態,請搭配使用 Run Command (AWS Systems Manager 的一項功能) 與 AWS-RunPowerShellScript 文件。

在 Microsoft 網站上下載 PSExec,然後執行下列命令,以在系統使用者環境下啟動新的 PowerShell 提示字元:

psexec -i -s C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

若要查看 AmazonSSMAgent 登錄設定,請執行下列命令:

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent'

若要查看系統環境變數 (http_proxy、https_proxy、no_proxy),請執行下列命令:

Get-Item -Path Env:http_proxy  
Get-Item -Path Env:https_proxy  
Get-Item -Path Env:no_proxy

若要查看 Internet Explorer 設定 (HTTP、安全、例外狀況),請執行下列命令:

Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' | Select-Object ProxyServer,  ProxyEnable

若要查看 WinINet 代理,請執行下列命令:

[System.Net.WebRequest]::DefaultWebProxy

若要查看 WinHTTP 代理設定 (http=、https=、bypass-list=),請執行下列命令:

netsh winhttp show proxy

如果代理僅針對 SSM Agent 而設定,則 Patch Manager 無法運作。這是因為 Windows Update 用戶端會使用全系統代理設定來掃瞄和下載更新。若要設定全系統代理,請執行下列命令:

netsh winhttp set proxy proxy-server="hostname:port" bypass-list="169.254.169.254"

如果有連線,請重設 Windows Update 元件,然後重新嘗試修補。

下載更新後無法安裝

若要解決下載後無法安裝更新的問題,請完成下列步驟:

1.    檢閱 C:\Windows\Logs\CBS的修補程式安裝日誌,並比對執行中命令的時間戳記。然後,檢閱日誌中是否有錯誤訊息。

2.    如果修補程式需要重新啟動,但在重新啟動後無法安裝,請使用 Amazon EC2 螢幕擷取畫面查看登入畫面上的訊息。

**注意:**修補程式可能會復原,並在開機畫面上顯示下列訊息: 「無法完成更新。正在復原變更。請勿關閉電腦」

3.    在 Component-Based Servicing (CBS) 日誌檔案中尋找 HResult 程式碼,然後在 Windows Update 錯誤文件中搜尋該程式碼。

4.    重設 Windows Update 元件,然後重試安裝。

缺少修補程式

若要對缺少的修補程式進行疑難排解,請參閱透過 Patch Manager 在 EC2 Windows 執行個體上成功執行修補操作後,如何對缺少的 KB 修補程式進行疑難排解?

相關資訊

如何安裝修補程式

AWS 官方
AWS 官方已更新 1 年前