將 SSM Agent 設定為使用 Windows Server 執行個體的代理 - AWS Systems Manager

將 SSM Agent 設定為使用 Windows Server 執行個體的代理

本主題中的資訊適用於 2016 年 11 月或之後建立的 Windows Server 執行個體,它們使用 Nano 安裝選項。

如果您的執行個體是 2016 年 11 月之前建立的 Windows Server 2008-2012 R2 執行個體,則 EC2Config 會處理您的執行個體上的 AWS Systems Manager 請求。建議您升級現有執行個體,以使用最新版本的 EC2Config。透過使用最新的 EC2Config 安裝程式,您可並行安裝 AWS Systems Manager Agent (SSM Agent) 與 EC2Config。此並行版本的 SSM Agent 與從舊版 Windows Amazon Machine Images (AMIs) 建立的執行個體相容,並允許您使用 2016 年 11 月之後發佈的 Systems Manager 功能。如需有關如何安裝最新版 EC2Config 服務的相關資訊,請參閱 Windows 執行個體的 Amazon EC2 使用者指南中的安裝最新版 EC2Config。如果您不升級至最新版本的 EC2Config,並使用 EC2Config 來處理 Systems Manager 要求,則應設定 EC2Config 的代理設定。如需有關設定 EC2Config 以使用代理的詳細資訊,請參閱設定 EC2Config 服務的代理設定

注意

從 2020 年 1 月 14 日起,Microsoft 不再支援 Windows Server 2008 的功能或安全性更新。Windows Server 2008 和 2008 R2 的舊版 Amazon Machine Images (AMIs) 仍包含預先安裝的 SSM Agent 的版本 2,但 Systems Manager 不再正式支援 2008 版本,並且不再更新這些 Windows Server 版本的代理程式。除此之外,SSM Agent 3.0 版 可能無法與 Windows Server 2008 和 2008 R2 上的所有操作相容。Windows Server 2008 版本的 SSM Agent 的最終的正式支援版本是 2.3.1644.0。

若要設定 SSM Agent 以使用代理

  1. 使用遠端桌面或 Windows PowerShell 連接到您要設定為使用代理的執行個體。

  2. 在 PowerShell 中執行下列命令區塊。使用與您的代理有關的資訊取代主機名稱連接埠

    $serviceKey = "HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent" $keyInfo = (Get-Item -Path $serviceKey).GetValue("Environment") $proxyVariables = @("http_proxy=hostname:port", "https_proxy=hostname:port", "no_proxy=169.254.169.254") If($keyInfo -eq $null) { New-ItemProperty -Path $serviceKey -Name Environment -Value $proxyVariables -PropertyType MultiString -Force } else { Set-ItemProperty -Path $serviceKey -Name Environment -Value $proxyVariables } Restart-Service AmazonSSMAgent

執行上述命令之後,您可以檢閱 SSM Agent 記錄檔以確認已套用 Proxy 設定。記錄檔中的項目看起來如下所示。如需 SSM Agent 日誌的詳細資訊,請參閱檢視 SSM Agent 日誌

2020-02-24 15:31:54 INFO Getting IE proxy configuration for current user: The operation completed successfully.
2020-02-24 15:31:54 INFO Getting WinHTTP proxy default configuration: The operation completed successfully.
2020-02-24 15:31:54 INFO Proxy environment variables:
2020-02-24 15:31:54 INFO http_proxy: hostname:port
2020-02-24 15:31:54 INFO https_proxy: hostname:port
2020-02-24 15:31:54 INFO no_proxy: 169.254.169.254
2020-02-24 15:31:54 INFO Starting Agent: amazon-ssm-agent - v2.3.871.0
2020-02-24 15:31:54 INFO OS: windows, Arch: amd64

若要重設 SSM Agent 代理組態

  1. 使用遠端桌面或 Windows PowerShell 連接到您要設定的執行個體。

  2. 如果您使用遠端桌面連接,請將 PowerShell 啟動為系統管理員。

  3. 在 PowerShell 中執行下列命令區塊。

    Remove-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent -Name Environment Restart-Service AmazonSSMAgent

SSM Agent 代理設定優先順序

在 SSM Agent 執行個體上設定 Windows Server的代理設定時,請務必瞭解在 SSM Agent 啟動時,系統會評估這些設定並套用至代理程式組態。您如何設定 Windows Server 執行個體的代理設定,將可決定其他設定是否可能取代您想要的設定。SSM Agent代理設定依照下列順序評估。

  1. AmazonSSMAgent 登錄設定 (HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent)

  2. 系統環境變數 (http_proxy、https_proxy、no_proxy)

  3. LocalSystem 使用者帳戶環境變數 (http_proxy、https_proxy、no_proxy)

  4. Internet Explorer 設定

  5. WinHTTP Proxy 設定

SSM Agent 代理設定和 Systems Manager 服務

如果您將 SSM Agent 設定為使用代理,而且您在 Windows Server 執行個體上使用的 AWS Systems Manager 功能 (例如 Run Command 和 Patch Manager) 在執行期間會使用 PowerShell 或 Windows Update 用戶端,則您必須設定額外的代理設定。否則,操作可能會失敗,因為 PowerShell 和 Windows Update 用戶端使用的代理設定不會繼承自 SSM Agent 代理組態。

對於 Run Command,在您的 Windows Server 執行個體上設定 WinINet 代理設定。根據每個工作階段提供 [System.Net.WebRequest] 命令。若要將這些組態套用至在 Run Command 中執行的後續網路命令,這些命令在相同的 aws:runPowershellScript 外掛程式輸入中必須優先於其他 Powershell 命令。

下列 PowerShell 命令會傳回目前的 WinINet 代理設定,並將您的代理設定套用到 WinINet

[System.Net.WebRequest]::DefaultWebProxy $proxyServer = "http://hostname:port" $proxyBypass = "169.254.169.254" $WebProxy = New-Object System.Net.WebProxy($proxyServer,$true,$proxyBypass) [System.Net.WebRequest]::DefaultWebProxy = $WebProxy

對於 Patch Manager,設定全系統範圍的代理設定,讓 Windows Update 用戶端可以掃描和下載更新。我們建議您使用 Run Command 來執行下列命令,因為這些命令會在 SYSTEM 帳戶上執行,且設定會套用到全系統。下列 netsh 命令會傳回目前的代理設定,並將您的代理設定套用到本機系統。

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

如需使用 Run Command 的詳細資訊,請參閱 使用 Systems Manager Run Command 執行命令