將 SSM Agent 設定為使用 Windows Server 執行個體的代理
本主題中的資訊適用於在 2016 年 11 月或之後建立的未使用 Nano 安裝選項的 Windows Server 執行個體。
如果您的執行個體是 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 服務的相關資訊,請參閱《Amazon EC2 Windows 執行個體使用者指南》中的安裝最新版 EC2Config。如果您不升級至最新版本的 EC2Config,並使用 EC2Config 來處理 Systems Manager 要求,則應設定 EC2Config 的代理設定。如需有關設定 EC2Config 以使用代理的詳細資訊,請參閱《Windows 執行個體的 Amazon EC2 使用者指南》中的設定 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 以使用代理
-
使用遠端桌面或 Windows PowerShell 連接到您要設定為使用代理的執行個體。
-
在 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 代理組態
-
使用遠端桌面或 Windows PowerShell 連接到您要設定的執行個體。
-
如果您使用遠端桌面連接,請將 PowerShell 啟動為系統管理員。
-
在 PowerShell 中執行下列命令區塊。
Remove-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent -Name Environment Restart-Service AmazonSSMAgent
SSM Agent 代理設定優先順序
在 Windows Server 執行個體上設定 SSM Agent的代理設定時,請務必瞭解在 SSM Agent 啟動時,系統會評估這些設定並套用至代理程式組態。您如何設定 Windows Server 執行個體的代理設定,將可決定其他設定是否可能取代您想要的設定。
SSM Agent 使用 HTTPS 協定進行通訊。因此,您必須使用以下其中一個設定選項配置 HTTPS proxy
參數。
依以下順序評估 SSM Agent 代理設定。
-
AmazonSSMAgent 登錄設定 (
HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent
) -
系統環境變數 (http_proxy、https_proxy、no_proxy)
-
LocalSystem 使用者帳戶環境變數 (http_proxy、https_proxy、no_proxy)
-
Internet Explorer 設定 (HTTP、安全、例外情況)
-
WinHTTP 代理設定 (http=、https=、bypass-list=)
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 來執行下列命令,因為這些命令會在系統管理員帳戶上執行,且設定會套用到全系統。下列 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 傳送命令。