共用方式為


在 Active Directory 網域服務中建立和刪除物件

用來以程式設計方式在 Active Directory 網域服務中建立和刪除物件的程式取決於所使用的程式設計技術。 如需使用特定程式設計技術在 Active Directory 網域服務中建立和刪除物件的詳細資訊,請參閱下表所列的主題。

程序設計技術 如需詳細資訊
Active Directory 服務介面 建立和刪除物件
輕量型目錄存取通訊協定 修改目錄項目
System.DirectoryServices 建立、刪除、重新命名和移動物件

 

建立物件

一般而言,要建立物件,所需的屬性有 cnobjectClass。 不過,只要建立物件不一定讓它成為功能物件。 某些類型的物件,例如使用者和群組,具有額外的必要屬性,使其正常運作。 如需建立特定物件類型的詳細資訊,請參閱 在網域中建立使用者建立群組

Windows Server 2003:使用者群組計算機 類別的物件建立於 WWindows Server 2003 或更新版本的域控制器上,域控制器會自動將對象的 sAMAccountName 属性設定為唯一字元串, 如果未指定,則為 。

刪除物件

刪除物件時,Active Directory 伺服器會執行下列動作:

  • 已刪除物件的 isDeleted 屬性會設定為 true 。 具有 屬性值設為 TRUE 的物件稱為 墓碑

  • 被刪除的物件會移到其命名內容的「已刪除的物件」容器中。 如果物件 systemFlags 屬性包含0x02000000旗標,則物件不會移至 Deleted Objects 容器。 如需系結至 Deleted Objects 容器和列舉內容的詳細資訊,請參閱 擷取已刪除的物件

  • Deleted Objects 容器是平面的,因此所有對象都位於 Deleted Objects 容器內的相同層級。 因此,已刪除對象的相對辨別名稱會變更,以確保名稱在 Deleted Objects 容器內是唯一的。 如果原始名稱超過 75 個字元,則會截斷為 75 個字元。 然後,下列項目會附加至新名稱:

    1. 0x0A字元
    2. 字串 “DEL:”
    3. 唯一 GUID 的字串形式,例如 “947e3228-70c9-4311-8b7a-e5c9b5bd4432”

    已刪除的物件名稱範例如下:

    Jeff Smith\0ADEL:947e3228-70c9-4311-8b7a-e5c9b5bd4432
    
  • 已刪除物件的大多數屬性值都會移除。 系統會自動保留下列屬性:

    • attributeID
    • attributeSyntax
    • 具名
    • dNReferenceUpdate
    • flatName
    • governsID
    • groupType
    • instanceType
    • lDAPDisplayName
    • legacyExchangeDN
    • mS-DS-CreatorSID
    • mSMQOwnerID
    • 名稱
    • nCName
    • objectClass
    • objectGUID
    • objectSid
    • oMSyntax
    • proxiedObjectName
    • replPropertyMetaData
    • sAMAccountName
    • securityIdentifier
    • 子類別
    • 系統標誌
    • 信任屬性
    • 信任方向
    • 信任夥伴
    • 信任類型
    • userAccountControl
    • uSNChanged
    • uSNCreated
    • 建立 時的

    也會保留具有 searchFlags 屬性值且包含0x00000008的其他屬性。

    下列屬性值一律會從已刪除的物件中移除:

    • 物件類別
    • samAccountType
  • 已刪除物件的安全性描述符會保留,而可繼承的存取控制項則不會被傳播。 刪除物件時,會保留安全性描述元 as-is。

  • 已清除與已刪除物件的來回連結。 這會在刪除物件之後於背景中執行。 如果在清除所有連結之前還原已刪除的物件,將會收到錯誤。

  • 如果在 Windows Server 2003 域控制器上刪除物件,則已刪除物件的 lastKnownParent 屬性 會設定為刪除物件時包含物件的容器辨別名稱。

已刪除的物件會在已刪除的物件容器中保留一段時間,稱為 墓碑存留期。 根據預設,墓碑存留期為 60 天,但系統管理員可以變更此值。 在墓碑存留期到期之後,物件就會從目錄服務永久移除。 為了避免遺漏刪除作業,應用程式必須比墓碑存留期更頻繁地執行累加同步處理。

Windows Server 2003 新增還原已刪除物件的能力。 如需已刪除物件還原的詳細資訊,請參閱 還原已刪除的物件

刪除專案時,無法修改物件的屬性。 在 Windows Server 2003 中,可以在已刪除的物件上修改安全性描述元(ntSecurityDescriptor 属性)。 這是為了在還原物件的人員沒有必要屬性的寫入許可權時,允許還原物件。 若要更新已刪除物件上的安全性描述元,呼叫端除了一般 WRITE_DACWRITE_OWNER 存取之外,還必須在命名內容上擁有 “Reanimate Tombstone” 控制訪問許可權。 即使安全性描述元受到限制,系統管理員也可以先取得對象的擁有權,假設系統管理員具有 SE_TAKE_OWNERSHIP_NAME 許可權,然後修改安全性描述元。 若要這樣做,請使用 ldap_modify_ext_s 函式搭配 LDAP_SERVER_SHOW_DELETED_OID 控件。 修改清單必須包含 ntSecurityDescriptor 屬性的一次屬性替換。