

• 2026 年 4 月 30 日之後， AWS Systems Manager CloudWatch Dashboard 將不再可用。客戶可以繼續使用 Amazon CloudWatch 主控台來檢視、建立和管理其 Amazon CloudWatch 儀表板，就像現在一樣。如需詳細資訊，請參閱 [Amazon CloudWatch Dashboard 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將 SSM Agent 設定為使用 Windows Server 執行個體的代理
<a name="configure-proxy-ssm-agent-windows"></a>

本主題中的資訊適用於在 2016 年 11 月或之後建立的*未*使用 Nano 安裝選項的 Windows Server 執行個體。如果您打算使用 Session Manager，請注意不支援 HTTPS 代理伺服器。

**開始之前**  
將 SSM Agent 設定為使用代理之前，請注意下列重要資訊。

在下列程序中，您需執行命令來將 SSM Agent 設定為使用代理。該命令包含具有 IP 位址的 `no_proxy` 設定。其中的 IP 位址是 Systems Manager 的執行個體中繼資料服務 (IMDS) 端點。如果未指定 `no_proxy`，則對 Systems Manager 的呼叫會從代理服務取得身分 (如果啟用了 IMDSv1 備用)，或對 Systems Manager 的呼叫失敗 (如果強制執行 IMDSv2)。
+ 針對 IPv4，請指定 `no_proxy=169.254.169.254`。
+ 針對 IPv6，請指定 `no_proxy=[fd00:ec2::254]`。執行個體中繼資料服務的 IPv6 地址與 IMDSv2 命令相容。IPv6 位址只能在建置於 [AWS Nitro 系統](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)的執行個體上進行存取。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的 [How Instance Metadata Service Version 2 works](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html)。

**若要設定 SSM Agent 以使用代理**

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

1. 在 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=IP address for instance metadata services (IMDS)")
   
   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 日誌](ssm-agent-logs.md)。

```
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: IP address for instance metadata services (IMDS)
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 連接到您要設定的執行個體。

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

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

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

## SSM Agent 代理設定優先順序
<a name="ssm-agent-proxy-precedence"></a>

在 Windows Server 執行個體上設定 SSM Agent的代理設定時，請務必瞭解在 SSM Agent 啟動時，系統會評估這些設定並套用至代理程式組態。您為 Windows Server 執行個體設定的代理設定會決定其他設定是否可能取代您所要的設定。代理程式會使用其找到的第一個代理設定。

**重要**  
SSM Agent 使用 HTTPS 協定進行通訊。因此，您必須使用以下其中一個設定選項配置 `HTTPS proxy` 參數。

依以下順序評估 SSM Agent 代理設定。

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

1. `System` 環境變數 (`http_proxy`、`https_proxy`、`no_proxy`)

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

1. 瀏覽器設定 (`HTTP`、`secure`、`exceptions`)

1. `WinHTTP` 代理設定 (`http=`、`https=`、`bypass-list=`)

## SSM Agent 代理設定和 Systems Manager 服務
<a name="ssm-agent-proxy-services"></a>

如果您將 SSM Agent 設定為使用代理，並使用在Windows Server執行個體上執行期間使用 PowerShell 或 Windows Update Run Command 用戶端 AWS Systems Manager 的工具Patch Manager，請設定其他代理設定。否則，操作可能會失敗，因為 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 的詳細資訊，請參閱 [AWS Systems Manager Run Command](run-command.md)。