

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

# 教學課程：擴展您的 AWS Managed Microsoft AD 結構描述
<a name="ms_ad_tutorial_extend_schema"></a>

在本教學課程中，您將了解如何透過新增符合您特定需求的唯一*屬性*和*類別*，擴展 AWS Directory Service for Microsoft Active Directory 目錄的結構描述，也稱為 AWS Managed Microsoft AD。 AWS 受管 Microsoft AD 結構描述延伸只能使用有效的 LDIF （輕量型目錄交換格式） 指令碼檔案來上傳和套用。

屬性 (attributeSchema) 定義資料庫中的欄位，而類別 (classSchema) 定義資料庫中的表格。例如，Active Directory 中所有的使用者物件都由結構描述類別*使用者*所定義，而使用者的個別內容，例如電子郵件地址或電話號碼，則分別由屬性定義。

如果您想要新增新的屬性，例如鞋碼，您可以定義類型為*整數*的新屬性。您也可以定義下限和上限，像是 1 到 20。一旦建立鞋碼 attributeSchema 物件，您就要更改*使用者*classSchema 物件來包含該屬性。屬性可以連結到多個類別。例如，鞋碼也可以新增到*聯絡人*類別。如需 Active Directory 結構描述的詳細資訊，請參閱「[何時擴展 AWS Managed Microsoft AD 結構描述](ms_ad_schema_extensions.md#ms_ad_schema_when_to_extend)」。

此工作流程有三個基本步驟。

![\[顯示教學課程步驟的圖表：1 建立 LDIF 檔案、2 匯入 LDIF 檔案，以及 3 驗證結構描述變更。\]](http://docs.aws.amazon.com/zh_tw/directoryservice/latest/admin-guide/images/tutorialextendadschema.png)


**[步驟 1：建立您的 LDIF 檔案](create.md)**  
首先，您要建立 LDIF 檔案以及定義屬性應該新增到的新屬性和任何類別。您會在工作流程的下一個階段中使用這個檔案。

**[步驟 2：匯入您的 LDIF 檔案](import.md)**  
在此步驟中，您會使用 AWS Directory Service 主控台將 LDIF 檔案匯入 Microsoft Active Directory 環境。

**[步驟 3：驗證結構描述延伸是否成功](verify.md)**  
最後，身為管理員，您要使用 EC2 執行個體驗證新的延伸會出現在 Active Directory 結構描述內嵌中。

# 步驟 1：建立您的 LDIF 檔案
<a name="create"></a>

LDIF 檔案是標準的純文字資料互換格式，代表 [LDAP](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) (輕量型目錄存取協定) 目錄內容和更新請求。LDIF 會將目錄內容傳輸為一個記錄集，每個物件 (或項目) 一筆記錄。它也代表記錄集的更新請求，例如新增、修改、刪除和重新命名，每個更新請求一筆記錄。

透過在 AWS Managed Microsoft AD 目錄上執行`ldifde.exe`應用程式，匯入具有結構描述變更 AWS Directory Service 的 LDIF 檔案。因此，您會發現了解 LDIF 指令碼語法很有幫助。如需詳細資訊，請參閱 [LDIF 指令碼](https://msdn.microsoft.com/en-us/library/ms677268(v=vs.85).aspx)。

很多第三方 LDIF 工具可以擷取、清理和更新您的結構描述更新。無論您使用哪種工具，請務必了解您 LDIF 檔案中使用的所有識別符都必須是唯一的。

我們強烈建議您先行檢閱下列概念和秘訣，再建立您的 LDIF 檔案。
+ **結構描述元素** - 了解結構描述元素，例如屬性、類別、物件 ID 和連結的屬性。如需詳細資訊，請參閱[結構描述元素](ms_ad_key_concepts.md#ms_ad_schema_elements)。
+ **項目序列** - 請確定您 LDIF 檔案中的項目順序是遵循 [Directory Information Tree (DIT)](https://en.wikipedia.org/wiki/Directory_information_tree) 從上到下的配置順序。LDIF 檔案排序的一般規則如下：

   
  + 不同的項目間隔一行。
  + 子項目列在父項目之後。
  + 請確定結構描述中有屬性或物件類別等項目。如果它們不存在，您必須先將它們新增至結構描述才能使用。例如，您必須先建立屬性，才能將屬性指派給類別。
+ **DN 的格式** - 針對 LDIF 檔案中的每條新指示，在指示的第一行定義辨別名稱 (DN)。DN 可識別 Active Directory 物件樹狀目錄中的 Active Directory 物件，且必須包含目錄的網域元件。例如，此教學中的目錄網域元件是 `DC=example,DC=com`。

  DN 必須包含 Active Directory 物件的通用名稱 (CN)。第一個 CN 項目代表屬性或類別名稱。若要延伸 Active Directory 結構描述，請使用 `CN=Schema,CN=Configuration`。請記住，您無法修改 Active Directory 物件內容。一般 DN 格式如下。

  ```
  dn: CN=[attribute or class name],CN=Schema,CN=Configuration,DC=[domain_name]
  ```

  在此教學中，新鞋碼屬性的 DN 如下：

  ```
  dn: CN=Shoe-Size,CN=Schema,CN=Configuration,DC=example,DC=com
  ```
+ **警告** - 擴展您的結構描述之前，請先檢閱以下的警告。
  + 擴展您的 Active Directory 結構描述之前，請務必檢閱有關此操作影響的 Microsoft 警告。如需詳細資訊，請參閱 [What You Must Know Before Extending the Schema](https://msdn.microsoft.com/en-us/library/ms677995(v=vs.85).aspx)。
  + 您無法刪除結構描述屬性或類別。因此，如果您發生錯誤且不想從備份還原，您只能停用物件。如需詳細資訊，請參閱 [Disabling Existing Classes and Attributes](https://msdn.microsoft.com/en-us/library/ms675903(v=vs.85).aspx)。
  + 不支援變更 defaultSecurityDescriptor。

若要進一步了解如何建構 LDIF 檔案，並查看可用於測試 AWS Managed Microsoft AD 結構描述延伸的範例 LDIF 檔案，請參閱 AWS 安全部落格上的[如何擴展 AWS Managed Microsoft AD Directory 結構描述](https://aws.amazon.com/blogs/security/how-to-add-more-application-support-to-your-microsoft-ad-directory-by-extending-the-schema/)一文。

**後續步驟**

[步驟 2：匯入您的 LDIF 檔案](import.md)

# 步驟 2：匯入您的 LDIF 檔案
<a name="import"></a>

您可以從 AWS Directory Service 主控台匯入 LDIF 檔案或使用 API 來擴展結構描述。如需如何使用結構描述延伸 API 執行此操作的詳細資訊，請參閱[《AWS Directory Service API 參考》](https://docs.aws.amazon.com/directoryservice/latest/devguide/)**。 AWS 目前不支援 Microsoft Exchange 等外部應用程式來直接執行結構描述更新。

**重要**  
當您更新 AWS Managed Microsoft AD 目錄結構描述時，此操作無法還原。換句話說，當您建立新的類別或屬性時，Active Directory 不允許您將其移除。不過，您可以停用它。  
如果您必須刪除結構描述的變更，您可以選擇從之前的快照還原目錄。還原快照會讓結構描述和目錄資料都退回到先前的點，而不僅只是結構描述。請注意，快照的支援存留期上限為 180 天。如需詳細資訊，請參閱 Microsoft 網站上的 [Useful shelf life of a system-state backup of Active Directory](https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/shelf-life-system-state-backup-ad)。

在更新程序開始之前， AWS 受管 Microsoft AD 會拍攝快照來保留目錄的目前狀態。

**注意**  
結構描述延伸是 AWS Managed Microsoft AD 的全域功能。如果您使用 [設定 AWS Managed Microsoft AD 的多區域複寫](ms_ad_configure_multi_region_replication.md)，則必須在 [主要區域](multi-region-global-primary-additional.md#multi-region-primary) 中執行下列步驟。變更將自動套用至所有複寫區域。如需詳細資訊，請參閱[全域與區域功能](multi-region-global-region-features.md)。

**匯入您的 LDIF 檔案**

1. 在 [AWS Directory Service 主控台](https://console.aws.amazon.com/directoryservicev2/)導覽窗格中，**選取目錄**。

1. 在 **Directories** (目錄) 頁面中，選擇目錄 ID。

1. 在**目錄詳細資訊**頁面上，執行下列其中一項：
   + 如果**多區域複寫**下顯示多個區域，請選取主要區域，然後選擇**維護**索引標籤。如需詳細資訊，請參閱[主要區域與其他區域](multi-region-global-primary-additional.md)。
   + 如果**多區域複寫**下沒有顯示任何區域，請選擇**維護**索引標籤。

1. 在 **Schema extensions (結構描述延伸)** 區段，選擇 **Actions (動作)**，然後選擇 **Upload and update schema (上傳及更新結構描述)**。

1. 在對話方塊中，按一下 **Browse** (瀏覽)，選取有效的 LDIF 檔案，輸入描述，然後選擇 **Update Schema** (更新結構描述)。
**重要**  
擴展結構描述是一項重要的操作。若未先在開發或測試環境中使用您的應用程式進行測試，請勿在生產環境中套用任何結構描述更新。

## LDIF 檔案的套用方式
<a name="howapplied"></a>

上傳 LDIF 檔案之後， AWS 受管 Microsoft AD 會採取步驟來保護您的目錄免於發生錯誤，因為它會依下列順序套用變更。

1. **驗證 LDIF 檔案。**由於 LDIF 指令碼可以操作網域中的任何物件，因此 AWS 受管 Microsoft AD 會在您上傳後立即執行檢查，以協助確保匯入操作不會失敗。這些檢查包括確保下列項目：
   + 要更新的物件只保留在結構描述容器中
   + DC (網域控制站) 部分符合 LDIF 指令碼執行所在的網域名稱

1. **建立您的目錄快照。**您可以使用快照來還原您的目錄，以免您的應用程式在更新結構描述之後發生任何問題。

1. **將變更套用至單一 DC。** AWS 受管 Microsoft AD 會隔離其中一個 DCs，並將 LDIF 檔案中的更新套用至隔離的 DC。然後，它會選取其中一個 DCs 做為主要結構描述，從目錄複寫中移除該 DC，並使用 套用您的 LDIF 檔案`Ldifde.exe`。

1. **複寫適用於所有 DCs。** AWS 受管 Microsoft AD 會將隔離的 DC 重新新增至複寫，以完成更新。在一切都發生後，您的目錄仍不中斷，繼續向您的應用程式提供 Active Directory 服務。

**下一步驟**

[步驟 3：驗證結構描述延伸是否成功](verify.md)

# 步驟 3：驗證結構描述延伸是否成功
<a name="verify"></a>

完成匯入流程後，請務必驗證結構描述更新是否套用到您的目錄。這在您遷移或更新任何依賴結構描述更新的應用程式之前，尤其重要。您可以使用各種不同的 LDAP 工具，或撰寫發出適當 LDAP 命令的測試工具來執行此作業。

此程序使用 Active Directory 結構描述內嵌及/或 PowerShell 驗證是否套用結構描述更新。您必須從加入 AWS Managed Microsoft AD 的網域電腦執行這些工具。這可以是能夠存取您虛擬私有雲端 (VPC) 或透過虛擬私有網路 (VPN) 連線，在您內部部署網路中執行的 Windows 伺服器。您也可以在 Amazon EC2 Windows 執行個體上執行這些工具 (請參閱[如何使用無縫加入域啟動新的 EC2 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-join-aws-domain.html#join-domain-console))。

**使用 Active Directory 結構描述內嵌進行驗證**

1. 使用 [TechNet](https://technet.microsoft.com/en-us/library/cc732110.aspx) 網站的指示來安裝 Active Directory 結構描述內嵌。

1. 開啟 Microsoft Management Console (MMC) 以及擴展您目錄的 **AD 結構描述**樹狀目錄。

1. 導覽 **Classes** (類別) 和 **Attributes** (屬性) 資料夾，直到您找到之前所做的結構描述變更。

**使用 PowerShell 進行驗證**

1. 開啟 PowerShell 視窗。

1. 使用以下 `Get-ADObject` cmdlet 來驗證結構描述變更。例如：

   `get-adobject -Identity 'CN=Shoe-Size,CN=Schema,CN=Configuration,DC=example,DC=com' -Properties *`

**選用步驟**

[將值新增至新屬性 - 選用](addvalue.md)

# 將值新增至新屬性 - 選用
<a name="addvalue"></a>

當您建立新的屬性，並想要將新值新增至 AWS Managed Microsoft AD 目錄中的屬性時，請使用此選用步驟。

**在屬性中新增值**

1. 開啟PowerShell命令列公用程式，並使用下列命令設定新屬性。在這個範例中，我們會將新的 EC2InstanceID 值新增到特定電腦的屬性中。

   `PS C:\> set-adcomputer -Identity computer name -add @{example-EC2InstanceID = 'EC2 instance ID'}`

1. 您可以執行以下命令，驗證 EC2InstanceID 值是否已新增到電腦物件：

   `PS C:\> get-adcomputer -Identity computer name –Property example-EC2InstanceID`

# 相關資源
<a name="additional"></a>

下列資源連結位於 Microsoft 網站並提供相關資訊。

 
+ [Extending the Schema (Windows)](https://msdn.microsoft.com/en-us/library/ms676900(v=vs.85).aspx)
+ [Active Directory Schema (Windows)](https://msdn.microsoft.com/en-us/library/ms674984(v=vs.85).aspx)
+ [Active Directory Schema](https://technet.microsoft.com/en-us/library/cc961581.aspx)
+ [Windows 系統管理：擴充 Active Directory 架構](https://technet.microsoft.com/en-us/magazine/a39543ba-e561-4933-b590-0878885f44f5)
+ [Restrictions on Schema Extension (Windows)](https://msdn.microsoft.com/en-us/library/ms677924(v=vs.85).aspx)
+ [Ldifde](https://technet.microsoft.com/en-us/library/cc731033(v=ws.11).aspx)