

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

# 為您的 WorkSpaces 應用程式使用者啟用應用程式設定持續性
<a name="app-settings-persistence"></a>

WorkSpaces 應用程式支援 Windows 型堆疊的持久性應用程式設定。這表示每個串流工作階段後都會自動儲存您的使用者應用程式自訂項目和 Windows 設定，並將它們套用至下一個工作階段。使用者可以設定的持久性應用程式設定範例包括 (但不限於)：瀏覽器最愛、設定、網頁工作階段、應用程式連線描述檔、外掛程式及 UI 自訂項目。這些設定會儲存到您帳戶中啟用應用程式設定持續性的 AWS 區域中的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。它們可在每個 WorkSpaces 應用程式串流工作階段中使用。

**注意**  
Linux 型堆疊目前不支援啟用應用程式設定持續性。

**注意**  
S3 儲存貯體中存放的資料可能需支付標準 Amazon S3 費用。如需詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

**Topics**
+ [應用程式設定持續性運作方式](how-it-works-app-settings-persistence.md)
+ [啟用應用程式設定持續性](enabling-app-settings-persistence.md)
+ [管理您使用者的應用程式設定 VHD](administer-app-settings-vhds.md)

# 應用程式設定持續性運作方式
<a name="how-it-works-app-settings-persistence"></a>

持續性應用程式設定儲存在虛擬硬碟 (VHD) 檔案。當使用者第一次從啟用了持續性應用程式設定的堆疊中串流應用程式時，即建立此檔案。如果機群與堆疊是根據包含預設應用程式和 Windows 設定的映像而產生關聯，則預設設定會用於使用者的第一個串流工作階段。如需預設設定的詳細資訊，請參閱 [教學課程：使用 WorkSpaces 應用程式主控台建立自訂 WorkSpaces 應用程式映像](tutorial-image-builder.md) 中的*步驟 3：建立預設應用程式和 Windows 設定*。

當串流工作階段結束時，會卸載 VHD 並將它上傳到您帳戶的 Amazon S3 儲存貯體。當您第一次為 AWS 區域中的堆疊啟用持久性應用程式設定時，就會建立儲存貯體。此儲存貯體是您的 AWS 帳戶和區域專屬。此 VHD 在傳輸中會使用 Amazon S3 SSL 端點加密，靜態時則使用 [AWS 受管 CMK](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) 加密。

VHD 同時掛載在 C:\$1Users\$1%username% 和 D:\$1%username% 的串流執行個體。如果您的執行個體未加入 Active Directory 網域，Windows 使用者名稱即為 PhotonUser。如果您的執行個體已加入 Active Directory 網域，Windows 使用者名稱即為登入的使用者名稱。

應用程式設定持久性無法在不同的作業系統版本之間運作。例如，如果您在堆疊上啟用應用程式設定持久性，且該堆疊與使用 Windows Server 2012 R2 映像的機群有關聯，如果您將機群更新為使用執行不同作業系統 (例如 Windows Server 2016) 的映像，則不會為堆疊使用者儲存來自先前串流工作階段的設定。反之，在您將機群更新為使用新的映像後，當使用者從機群執行個體啟動串流工作階段時，即會建立新的 Windows 使用者描述檔。不過，如果您將更新套用到映像上相同的作業系統時，即會儲存來自先前串流工作階段的自訂和設定。對映像套用相同作業系統的更新時，在使用者從機群執行個體中啟動串流工作階段時就會使用相同的 Windows 使用者描述檔。

**重要**  
WorkSpaces 應用程式只有在串流執行個體加入 [Microsoft Active Directory 網域時，才支援依賴 Microsoft Data Protection API](https://docs.microsoft.com/en-us/windows/desktop/seccng/cng-dpapi) 的應用程式。在未將串流執行個體加入 Active Directory 網域的案例下，每個機群執行個體上的 Windows 使用者和 PhotonUser 都是不同的。由於 DPAPI 安全模組運作的方式，不會為在此案例中使用 DPAPI 的應用程式保留使用者的密碼。在串流執行個體已加上 Active Directory 網域且該使用者是網域使用者的案例中，Windows 使用者名稱是登入使用者的名稱，而系統會為使用 DPAPI 的應用程式保留使用者的密碼。

WorkSpaces 應用程式會自動儲存此路徑中的所有檔案和資料夾，但下列資料夾除外：
+ 聯絡人
+ 桌面
+ 文件
+ 下載
+ 連結
+ 圖片
+ 儲存的遊戲
+ 搜尋
+ 影片

在這些資料夾外部建立的檔案和資料夾會儲存在 VHD 內並同步到 Amazon S3。彈性機群的預設 VHD 大小上限為 1GB，而 Always-On 和 On-Demand 機群則為 5GB。儲存的 VHD 大小是其本身包含的檔案和資料夾的總大小。WorkSpaces 應用程式會自動儲存使用者的 HKEY\$1CURRENT\$1USER 登錄機群。對於新使用者 （設定檔不存在於 Amazon S3 的使用者），WorkSpaces 應用程式會使用預設設定檔建立初始設定檔。此設定檔會在映像建置器上的下列位置建立：C:\$1users\$1default。

**注意**  
整個 VHD 必須先下載到串流執行個體，串流工作階段才會開始。因此，包含大量資料的 VHD 會造成串流工作階段開始延遲。如需詳細資訊，請參閱[啟用應用程式設定持續性的最佳實務](best-practices-app-settings-persistence.md)。

當您啟用應用程式設定持續性時，您必須指定設定群組。設定群組決定此堆疊中哪些已儲存的應用程式設定要用於串流工作階段。WorkSpaces 應用程式會為您 AWS 帳戶中 S3 儲存貯體中個別存放的設定群組建立新的 VHD 檔案。如果堆疊之間共用設定群組，則每個堆疊中使用的就是相同的應用程式設定。如果堆疊需要自己的應用程式設定，請為堆疊指定唯一的設定群組。

# 啟用應用程式設定持續性
<a name="enabling-app-settings-persistence"></a>

檢閱下列主題，了解如何為您的 WorkSpaces 應用程式使用者啟用應用程式設定持續性。

**Topics**
+ [啟用應用程式設定持續性的事前準備](prerequisites-app-settings-persistence.md)
+ [啟用應用程式設定持續性的最佳實務](best-practices-app-settings-persistence.md)
+ [如何啟用應用程式設定持續性](howto-enable-app-settings-persistence.md)

# 啟用應用程式設定持續性的事前準備
<a name="prerequisites-app-settings-persistence"></a>

若要啟用應用程式設定持續性，您必須先執行以下操作：
+ 檢查您是否具有 Amazon S3 動作的正確 AWS Identity and Access Management (IAM) 許可。如需詳細資訊，請參閱 [Amazon WorkSpaces 應用程式的 Identity and Access Management](controlling-access.md) 中的*主資料夾的 IAM 政策和 Amazon S3 儲存貯體*。
+ 使用從 AWS 於 2017 年 12 月 7 日或之後發佈的基礎映像建立的映像。如需目前發佈的基礎 AWS 映像清單，請參閱 [WorkSpaces 應用程式基礎映像和受管映像更新版本備註](base-image-version-history.md)。
+ 根據使用 2018 年 8 月 29 日當天或之後發行之 WorkSpaces 應用程式代理程式版本的映像，將您計劃啟用此功能的堆疊與機群建立關聯。如需詳細資訊，請參閱[WorkSpaces 應用程式代理程式版本備註](agent-software-versions.md)。
+ 設定網際網路存取或 Amazon S3 的 VPC 端點，以啟用從您的虛擬私有雲端 (VPC) 到 Amazon S3 的網路連線。如需詳細資訊，請參閱 [Amazon WorkSpaces 應用程式的聯網和存取](managing-network.md) 中的*主資料夾和 VPC 端點*。

# 啟用應用程式設定持續性的最佳實務
<a name="best-practices-app-settings-persistence"></a>

若要啟用應用程式設定持續性，但不提供執行個體的網際網路存取權，請使用 VPC 端點。此端點必須位於 WorkSpaces 應用程式執行個體所連接的 VPC 中。您必須連接自訂政策，以啟用 WorkSpaces 應用程式對端點的存取。如需如何建立自訂政策的詳細資訊，請參閱 [Amazon WorkSpaces 應用程式的聯網和存取](managing-network.md) 中的*主資料夾和 VPC 端點*一節。如需有關私有 Amazon S3 端點的詳細資訊，請參閱《Amazon VPC 使用者指南》**中的 [VPC 端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)和 [Amazon S3 的端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html)。

# 如何啟用應用程式設定持續性
<a name="howto-enable-app-settings-persistence"></a>

您可以使用 WorkSpaces 應用程式主控台、WorkSpaces 應用程式 API、 AWS SDK 或 AWS 命令列界面 (CLI)，在建立堆疊時或在建立堆疊之後啟用或停用應用程式設定持續性。對於每個 AWS 區域，持久性應用程式設定會存放在您帳戶中的 S3 儲存貯體中。

第一次為 AWS 區域中的堆疊啟用應用程式設定持續性時，WorkSpaces 應用程式會在相同區域中 AWS 的帳戶中建立 S3 儲存貯體。相同的儲存貯體會存放該 AWS 區域中所有使用者和所有堆疊的應用程式設定 VHD 檔案。如需詳細資訊，請參閱 [管理您使用者的應用程式設定 VHD](administer-app-settings-vhds.md) 中的 *Amazon S3 儲存貯體儲存*。

**在建立堆疊時啟用應用程式設定持續性**
+ 依照[在 Amazon WorkSpaces 應用程式中建立堆疊](set-up-stacks-fleets-install.md)中的步驟執行作業，並確定選取 **Enable Application Settings Persistence (啟用應用程式設定持續性)**。

**啟用現有堆疊的應用程式設定持續性**

1. 在 https：//[https://console.aws.amazon.com/appstream2](https://console.aws.amazon.com/appstream2) 開啟 WorkSpaces 應用程式主控台。

1. 在左側導覽窗格中，選擇 **Stacks (堆疊)**，然後選取要啟用應用程式設定持續性的堆疊。

1. 在堆疊清單下，選擇 **User Settings (使用者設定)**、**Application Settings Persistence (應用程式設定持續性)**、**Edit (編輯)**。

1. 在 **Application Settings Persistence (應用程式設定持續性)** 對話方塊中，選擇 **Enable Application Settings Persistence (啟用應用程式設定持續性)**。

1. 確認目前的設定群組，或輸入新的設定群組名稱。完成後，請選擇 **Update (更新)**。

新的串流工作階段現已啟用應用程式設定持續性。

# 管理您使用者的應用程式設定 VHD
<a name="administer-app-settings-vhds"></a>

檢閱下列主題，了解如何管理 WorkSpaces 應用程式使用者應用程式設定的虛擬硬碟 (VHD) 檔案。

**Topics**
+ [Amazon S3 儲存貯體儲存](app-persistence-s3-buckets.md)
+ [重設使用者的應用程式設定](app-persistence-s3-reset.md)
+ [啟用 Amazon S3 物件版本控制以及回復使用者的應用程式設定](app-persistence-enable-versions-revert-settings.md)
+ [增加應用程式設定 VHD 的大小](app-persistence-increase-VHD-size.md)

# Amazon S3 儲存貯體儲存
<a name="app-persistence-s3-buckets"></a>

當您啟用應用程式設定持久性時，使用者的應用程式自訂和 Windows 設定會自動儲存至虛擬硬碟 (VHD) 檔案，該檔案存放在您 AWS 帳戶中建立的 Amazon S3 儲存貯體中。對於每個 AWS 區域，WorkSpaces 應用程式會在您的帳戶中建立專屬於您的帳戶和區域的儲存貯體。您使用者設定的所有應用程式設定都會存放在該區域的儲存貯體中。

您不需要執行任何組態任務來管理這些 S3 儲存貯體；它們完全由 WorkSpaces 應用程式服務管理。儲存在每個儲存貯體中的 VHD 檔案在傳輸中會使用 Amazon S3 的 SSL 端點加密，靜態時則使用 [AWS 受管 CMK](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) 加密。儲存貯體使用特定格式命名，如下所示：

```
appstream-app-settings-region-code-account-id-without-hyphens-random-identifier
```

***region-code***  
這是使用應用程式設定持久性建立堆疊 AWS 的區域碼。

***account-id-without-hyphens***  
 AWS 您的帳戶 ID。確保與該區域中其他儲存貯體不發生衝突的隨機識別符。儲存貯體名稱的第一部分 `appstream-app-settings`，不會因為跨帳戶或區域而變更。

例如，如果您在美國西部 （奧勒岡） 區域 (us-west-2) 的帳號 123456789012 上啟用堆疊的應用程式設定持久性，WorkSpaces 應用程式會在您的帳戶內建立顯示名稱的 Amazon S3 儲存貯體。只有具備足夠許可的管理員可以刪除這個儲存貯體。

```
appstream-app-settings-us-west-2-1234567890123-abcdefg
```

停用應用程式設定持續性不會刪除任何存放在 S3 儲存貯體的 VHD。您或具有足夠許可的其他管理員必須使用 Amazon S3 主控台或 API，才能永久刪除設定 VHD。WorkSpaces 應用程式會新增儲存貯體政策，以防止意外刪除儲存貯體。如需詳細資訊，請參閱 [Amazon WorkSpaces 應用程式的 Identity and Access Management](controlling-access.md) 中的 *IAM 政策和應用程式設定持續性的 Amazon S3 儲存貯體*。

啟用應用程式設定持續性時，每個設定群組都會建立唯一的資料夾來存放設定 VHD。S3 儲存貯體的資料夾階層取決於使用者啟動串流工作階段的方式，如下節所述。

在您的帳戶中，設定 VHD 存放在 S3 儲存貯體中的資料夾路徑使用以下結構：

```
bucket-name/Windows/prefix/settings-group/access-mode/user-id-SHA-256-hash
```

***bucket-name***  
存放使用者應用程式設定的 S3 儲存貯體名稱。名稱格式如本節前文所述。

***prefix***  
Windows 版本特定字首。例如，v4 代表 Windows Server 2012 R2。

***settings-group***  
設定群組值。這個值套用到共用相同應用程式設定的一或多個堆疊。

***access-mode***  
使用者的身分方法：`custom`適用於 WorkSpaces 應用程式 API 或 CLI、`federated`適用於 SAML，以及`userpool`適用於使用者集區使用者。

***user-id-SHA-256-hash***  
使用者特定的資料夾名稱。此名稱是使用從使用者 ID 產生的小寫 SHA-256 雜湊十六進位字串。

下列範例資料夾結構適用於使用 API 或 CLI 存取的串流工作階段，其使用者 ID 為 `testuser@mydomain.com`、 AWS 帳戶 ID 為 `123456789012`，以及美國西部 （奧勒岡） 區域 (us-west-2) `test-stack`中的設定群組：

```
appstream-app-settings-us-west-2-1234567890123-abcdefg/Windows/v4/test-stack/custom/a0bcb1da11f480d9b5b3e90f91243143eac04cfccfbdc777e740fab628a1cd13
```

您可以使用網站或線上提供的開放原始碼編碼程式庫，產生使用者 ID 的小寫 SHA-256 雜湊值，來識別使用者的資料夾。

# 重設使用者的應用程式設定
<a name="app-persistence-s3-reset"></a>

若要重設使用者的應用程式設定，您必須從 AWS 帳戶中的 S3 儲存貯體尋找並刪除 VHD 和相關聯的中繼資料檔案。請確定您未在使用者的作用中串流工作階段期間執行此操作。在您刪除使用者的 VHD 和中繼資料檔案後，下次使用者從已啟用應用程式設定持續性的串流執行個體啟動工作階段時，WorkSpaces 應用程式會為該使用者建立新的設定 VHD。

**重設使用者的應用程式設定**

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在 **Bucket name (儲存貯體名稱)** 清單中，選擇包含您要重設之應用程式設定 VHD 的 S3 儲存貯體。

1. 找出包含 VHD 的資料夾。如需如何導覽 S3 儲存貯體資料夾結構的詳細資訊，請參閱本主題前文中的「Amazon S3 儲存貯體儲存」**。

1. 在 **Name (名稱)** 清單中，選取 VHD 和 REG 旁的核取方塊，然後選擇 **More (更多)**，再選擇 **Delete (刪除)**。

1. 在 **Delete objects (刪除物件)** 對話方塊中，確認列出 VHD 和 REG，然後選擇 **Delete (刪除)**。

下次當使用者從以適用的設定群組啟用應用程式設定持續性的機群串流時，即會建立新的應用程式設定 VHD。此 VHD 會在工作階段結束時儲存到 S3 儲存貯體。

# 啟用 Amazon S3 物件版本控制以及回復使用者的應用程式設定
<a name="app-persistence-enable-versions-revert-settings"></a>

在您的使用者變更應用程式設定時，您可以使用 Amazon S3 物件版本控制和生命週期政策來管理使用者的應用程式設定。使用 Amazon S3 物件版本控制，您可以保留、擷取和還原每個版本的設定 VHD。這可讓您從使用者動作失誤和應用程式故障中復原。啟用版本控制時，每個串流工作階段後，新版的應用程式設定 VHD 都會同步到 Amazon S3。新版不會覆寫舊版，所以您的使用者設定如果發生問題，您可以回復到之前的 VHD 版本。

**注意**  
每個版本的應用程式設定 VHD 都會儲存到 Amazon S3 作為個別物件，並據此收費。

根據預設，您的 S3 儲存貯體中不啟用物件版本控制，所以您必須明確啟用它。

**針對您的應用程式設定 VHD 啟用物件版本控制**

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在 **Bucket name (儲存貯體名稱)** 清單中，選擇包含您要啟用物件版本控制之應用程式設定 VHD 的 S3 儲存貯體。

1. 選擇 **Properties (屬性)**。

1. 選擇 **Versioning (版本控制)**、**Enable versioning (啟用版本控制)**，然後選擇 **Save (儲存)**。

您可以使用 Amazon S3 生命週期政策，讓較舊版本的應用程式設定 VHD 過期。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的[如何建立 S3 儲存貯體的生命週期政策？](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-lifecycle.html)。

**回復使用者的應用程式設定 VHD**

您可以在適用的 S3 儲存貯體中刪除新版的 VHD，回復到之前的使用者應用程式設定 VHD 版本。請不要在使用者有作用中的串流工作階段時執行此作業。

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在 **Bucket name (儲存貯體名稱)** 清單中，選擇包含要回復之使用者應用程式設定 VHD 的 S3 儲存貯體。

1. 找出並選取包含 VHD 的資料夾。如需如何導覽 S3 儲存貯體資料夾結構的資訊，請參閱本主題前文中的「Amazon S3 儲存貯體儲存」**。

   當您選取此資料夾時，即會顯示設定 VHD 和關聯的中繼資料檔案。

1. 若要顯示 VHD 清單和中繼資料檔案版本，請選擇 **Show (顯示)**。

1. 找出要回復的 VHD 版本。

1. 在 **Name (名稱)** 清單中，選取較新版 VHD 和相關聯中繼資料檔案旁的核取方塊，選擇 **More (更多)**，然後選擇 **Delete (刪除)**。

1. 驗證您想要回復的應用程式設定 VHD 和相關聯的中繼資料檔案都是最新版。

下次當使用者從以適用的設定群組啟用應用程式設定持續性的機群串流時，即會建立回復的使用者設定版本。

# 增加應用程式設定 VHD 的大小
<a name="app-persistence-increase-VHD-size"></a>

預設的 VHD 大小上限為彈性機群 1 GB，以及 Always-On 和 On-Demand 機群 5GB。如果使用者需要額外空間供應用程式設定使用，您可以將適用的應用程式設定 VHD 下載到 Windows 電腦擴展它。然後，以較大的 VHD 取代 S3 儲存貯體中目前的 VHD。請不要在使用者有作用中的串流工作階段時執行此作業。

**注意**  
若要減少虛擬硬碟 (VHD) 的實體大小，請在結束工作階段之前清除資源回收筒。這也會減少上傳和下載時間，並改善整體使用者體驗。

**增加應用程式設定 VHD 的大小**
**注意**  
您必須先下載完整的 VHD，使用者才能串流應用程式。增加應用程式設定 VHD 的大小，會增加使用者開始應用程式串流工作階段所用的時間。

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在 **Bucket name (儲存貯體名稱)** 清單中，選擇包含您要擴展之應用程式設定 VHD 的 S3 儲存貯體。

1. 找出並選取包含 VHD 的資料夾。如需如何導覽 S3 儲存貯體資料夾結構的資訊，請參閱本主題前文中的「Amazon S3 儲存貯體儲存」**。

   當您選取此資料夾時，即會顯示設定 VHD 和關聯的中繼資料檔案。

1. 將 Profile.vhdx 檔案下載到您 Windows 電腦上的目錄。下載完成後請勿關閉瀏覽器，因為稍後要使用瀏覽器上傳擴展的 VHD。

1. 若要使用 Diskpart 將 VHD 的大小增加到 7 GB，請以管理員身分開啟命令提示，然後輸入下列命令。

   `diskpart`

   `select vdisk file="C:\path\to\application\settings\profile.vhdx"`

   `expand vdisk maximum=7000`

1. 然後，輸入下列 Diskpart 命令，找到並連接 VHD 清單，然後顯示磁碟區清單：

   `select vdisk file="C:\path\to\application\settings\profile.vhdx"`

   `attach vdisk`

   `list volume`

   在輸出中，記下標籤為 "AppStreamUsers" 的磁碟區編號。在接下來的步驟中，選取此磁碟區以便擴大它。

1. 鍵入以下命令：

   `select volume ###`

   其中 \$1\$1\$1 是在磁碟區輸出清單中的編號。

1. 鍵入以下命令：

   `extend`

1. 輸入以下命令，確認 VHD 的分割區大小如預期提高 (本範例中為 2 GB)：

   `diskpart`

   `select vdisk file="C:\path\to\application\settings\profile.vhdx"`

   `list volume`

1. 輸入以下命令分離 VHD 以便上傳它：

   `detach vdisk`

1. 回到使用 Amazon S3 主控台的瀏覽器，選擇**上傳**、**新增檔案**，然後選取擴大的 VHD。

1. 選擇**上傳**。

上傳 VHD 後，下次當使用者從以適用的設定群組啟用應用程式設定持續性的機群串流時，即可使用較大的應用程式設定 VHD。