

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

# 在 Amazon WorkSpaces 應用程式中建立 VHD 的設定指令碼
<a name="create-setup-script"></a>

WorkSpaces 應用程式會使用您提供的設定指令碼，在應用程式啟動之前掛載 VHD。您也可以使用安裝指令碼來完成其他必要任務，以便讓應用程式正常運作。例如，您可以從安裝指令碼設定登錄機碼、註冊 DLL、管理必要條件，或修改使用者設定檔。WorkSpaces 應用程式提供指令碼範例，您可以用來掛載 VHD。您需要根據您的 VHD 和應用程式所需修改這些指令碼。

**注意**  
使用 WorkSpaces 應用程式封裝的應用程式區塊不需要設定指令碼。不過，您可以提供選用的安裝後指令碼，以自訂應用程式安裝。

使用下列連結來下載範例指令碼：
+ [Ubuntu Pro 24.04 LTS 和 Amazon Linux 2 bash 指令碼](samples/Linux-mount-vhd-script2.zip)
+ [Microsoft Windows Powershell 指令碼](samples/Windows-mount-vhd-script3.zip)
**注意**  
WorkSpaces 應用程式和 Microsoft Windows 作業系統會保留磁碟機代號 A 到 E。請勿將 VHDs或網路共用掛載至這些磁碟機代號。

WorkSpaces 應用程式會將安裝指令碼和 VHD 下載到機群串流執行個體上的目錄，然後執行安裝指令碼。安裝指令碼會以完整管理員權限在作業系統上執行。設定指令碼會在 Microsoft Windows 上`SYSTEM`以使用者身分在 Amazon Linux 2 或 Ubuntu Pro 24.04 LTS `root`上執行。

VHD 和安裝指令碼的檔案系統位置：
+ Ubuntu Pro 24.04 LTS：

  `/opt/appstream/AppBlocks/appblock-name/`  
**`appblock-name` **  
VHD 和安裝程式碼對應的應用程式區塊名稱。
+ Amazon Linux 2：

  `/opt/appstream/AppBlocks/appblock-name/`  
**`appblock-name` **  
VHD 和安裝程式碼對應的應用程式區塊名稱。
+ Microsoft Windows：

  `C:\AppStream\AppBlocks\appblock-name\`  
**`appblock-name` **  
VHD 和安裝程式碼對應的應用程式區塊名稱。

WorkSpaces 應用程式會在物件上維護檔案名稱。例如，如果您的應用程式區塊命名為 `MyApps`，且 VHD 命名為 `apps.vhd` 和安裝指令碼命名為 `mount-apps.ps1`，則 Windows 串流執行個體上的完整路徑為：
+ VHD

  `C:\AppStream\AppBlocks\MyApps\apps.vhd`
+ 安裝指令碼

  `C:\AppStream\AppBlocks\MyApps\mount-apps.ps1`

WorkSpaces 應用程式在機群串流執行個體上執行時，會從設定指令碼擷取標準錯誤和標準輸出，並將輸出上傳到您帳戶中的 Amazon S3 儲存貯體。您可以使用這些日誌來識別和解決安裝指令碼可能發生的問題。儲存貯體使用特定格式命名，如下所示：

```
appstream-logs-region-code-account-id-without-hyphens-random-identifier
```

**`region-code` **  
這是在其中建立彈性機群 AWS 的區域代碼。

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

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

```
appstream-logs-us-west-2-1234567890123-abcdefg
```

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

```
bucket-name/fleet-name/instance-id/appblock-name/
```

**`bucket-name` **  
存放安裝指令碼日誌的 Amazon S3 儲存貯體名稱。名稱格式如本節前文所述。

**`Instance-id` **  
安裝命令碼執行所在的串流執行個體的唯一識別符

**`appblock-name` **  
安裝程式碼對應的應用程式區塊名稱。

以下範例資料夾結構適用於從 `test-fleet` 啟動的串流工作階段。工作階段來自 AWS 帳戶 ID 為 123456789012，而應用程式區塊名稱在美國西部 （奧勒岡） 區域 (us-west-2) 為 testappblock：

`appstream-logs-us-west-2-1234567890123-abcdefg/test-fleet/i-084427ab4a1cff7f5/testappblock/`

此範例資料夾結構包含一個用於標準輸出的日誌檔，以及一個用於標準錯誤的日誌檔。

**Topics**
+ [Amazon WorkSpaces 應用程式中的應用程式區塊設定指令碼執行](script-execution.md)

# Amazon WorkSpaces 應用程式中的應用程式區塊設定指令碼執行
<a name="script-execution"></a>

下列圖表指出安裝指令碼在程序中執行的位置。執行順序取決於，與彈性機群相關聯的堆疊上是否啟用了「應用程式設定持續性」。

**注意**  
WorkSpaces 應用程式使用您的 VPC 詳細資訊，從 Amazon S3 儲存貯體下載 VHD 和設定指令碼。您的 VPC 必須提供 Amazon S3 儲存貯體的存取權。如需詳細資訊，請參閱[將 Amazon S3 VPC 端點用於 WorkSpaces 應用程式功能](managing-network-vpce-iam-policy.md)。

應用程式設定持續性已啟用：

![\[應用程式設定持續性已啟用。\]](http://docs.aws.amazon.com/zh_tw/appstream2/latest/developerguide/images/app-settings-enabled.png)


應用程式設定持續性已停用：

![\[應用程式設定持續性已停用。\]](http://docs.aws.amazon.com/zh_tw/appstream2/latest/developerguide/images/app-settings-disabled.png)
