将 SSM 代理配置为使用Windows Server实例 - Amazon Web Services Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 SSM 代理配置为使用Windows Server实例

本主题中的信息适用于Windows Server在 2016 年 11 月或之后创建的实例使用 Nano 安装选项。

如果您的实例是Windows Server已创建BEFRE2016 年 11 月,然后是 EC2 配置流程Amazon Web Services Systems Manager请求。我们建议您升级现有实例以使用最新版本的 EC2Config。您可以使用最新的 EC2Config 安装程序,在安装Amazon Web Services Systems Manager代理(SSM 代理)与 EC2Config 并排。此并行版本 SSM 代理与通过之前的 Windows 创建的实例兼容Amazon Machine Images(AMIs),并允许您使用 2016 年 11 月之后发布的 Systems Manager 功能。有关如何安装最新版本的 EC2Config 服务的信息,请参阅安装最新版的 EC2Config中的适用于 Windows 实例的 Amazon EC2 用户指南。如果不升级到最新版本的 EC2Config 并使用 EC2Config 处理 Systems Manager 请求,则必须为 EC2Config 配置代理设置。有关配置 EC2Config 以使用代理的信息,请参阅配置 EC2Config 服务的代理设置

注意

截至 2020 年 1 月 14 日Windows Server2008不再支持以获取来自微软的功能或安全更新。传统Amazon Machine Images(AMIs) 用于Windows Server2008 和 2008 R2 仍包含预安装的 SSM 代理版本 2,但 Systems Manager 不再正式支持 2008 版本,并且不再更新这些版本的Windows Server。此外,SSM 代理版本 3.0可能不会兼容所有操作Windows Server2008 R2。最终官方支持的 SSM 代理版本Windows Server2008 年版本为 2.3.1644.0。

将 SSM 代理配置为使用代理

  1. 使用远程桌面或 Windows PowerShell,连接到您希望配置的实例,以使用代理。

  2. 在 PowerShell 中运行以下命令块。Replacehostname端口,其中包含有关您的代理的信息。

    $serviceKey = "HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent" $keyInfo = (Get-Item -Path $serviceKey).GetValue("Environment") $proxyVariables = @("http_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 代理日志以确认已应用代理设置。日志中的条目类似于以下内容。有关 SSM 代理日志的更多信息,请参阅查看 SSM 代理日志

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: 
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 代理代理配置

  1. 使用远程桌面或 Windows PowerShell,连接到要配置的实例。

  2. 如果使用远程桌面连接,则以管理员的身份启动 PowerShell。

  3. 在 PowerShell 中运行以下命令块。

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

SSM 代理设置优先级

为上的 SSM 代理配置代理设置时Windows Server实例,务必了解在 SSM 代理启动时会评估这些设置并将它们应用于代理配置。如何配置代理设置Windows Server实例可以确定其他设置是否可能取代您所需的设置。SSM 代理设置按以下顺序评估。

  1. AmazonSSMAgent 注册表设置 (HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent)

  2. 系统环境变量(http_proxy、https_proxy、no_proxy)

  3. LocalSystem 用户账户环境变量(http_proxy、https_proxy、no_proxy)

  4. WinHTTP 代理设置

  5. Internet Explorer 设置

SSM 代理代理设置和 Systems Manager 服务

如果将 SSM 代理配置为使用代理并使用Amazon Web Services Systems Manager功能(例如,Run Command 和 Patch Manager),而这些功能在上执行期间将使用 PowerShell 或 Windows Update 客户端。Windows Server实例,则必须配置其他代理设置。否则,操作可能失败,因为 PowerShell 和 Windows Update 客户端使用的代理设置不是从 SSM 代理配置继承的。

对于 Run Command,您必须在 Windows Server 实例上配置 WinINet 代理设置。这些区域有:[System.Net.WebRequest]命令是按会话提供的。要将这些配置应用于在 “运行命令” 中运行的后续网络命令,这些命令必须位于同一aws:runPowershellScript插件输入。

以下 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 运行命令