在 Active Directory 網域服務 中建立和刪除物件
用來以程式設計方式在 Active Directory 網域服務 中建立和刪除物件的程序取決於所使用的程式設計技術。 如需使用特定程式設計技術在 Active Directory 網域服務 中建立和刪除對象的詳細資訊,請參閱下表所列的主題。
程序設計技術 | 取得更多資訊 |
---|---|
Active Directory 服務介面 | 建立和刪除物件 |
輕量型目錄存取通訊協定 | 修改目錄專案 |
System.DirectoryServices | 建立、刪除、重新命名和移動物件 |
建立物件
一般而言,建立物件所需的唯一屬性是 cn 和 objectClass 屬性。 不過,只要建立物件不一定讓它成為功能物件。 某些類型的物件,例如使用者和群組,具有額外的必要屬性,使其正常運作。 如需建立特定物件類型的詳細資訊,請參閱在網域中建立使用者和建立群組。
Windows Server 2003:在 WWindows Server 2003 或更新版本上執行的域控制器上建立使用者、群組或計算機類別的物件時,如果未指定,域控制器會自動將物件的 sAMAccountName 屬性設定為唯一字串。
刪除物件
刪除物件時,Active Directory 伺服器會執行下列動作:
已刪除物件的 isDeleted 屬性會設定為 TRUE。 將isDeleted屬性值設定為TRUE的物件稱為墓碑。
已刪除的物件會移至其命名內容的 Deleted Objects 容器。 如果物件 systemFlags 屬性包含0x02000000旗標,物件就不會移至 Deleted Objects 容器。 如需系結至 Deleted Objects 容器和列舉內容的詳細資訊,請參閱 擷取已刪除的物件。
Deleted Objects 容器是平面的,因此所有對象都位於 Deleted Objects 容器內的相同層級。 因此,已刪除對象的相對辨別名稱會變更,以確保名稱在 Deleted Objects 容器內是唯一的。 如果原始名稱超過 75 個字元,則會截斷為 75 個字元。 然後,下列專案會附加至新的名稱:
- 0x0A字元
- 字串 “DEL:”
- 唯一 GUID 的字串形式,例如 “947e3228-70c9-4311-8b7a-e5c9b5bd4432”
已刪除的物件名稱範例如下:
Jeff Smith\0ADEL:947e3228-70c9-4311-8b7a-e5c9b5bd4432
已刪除物件的大多數屬性值都會移除。 系統會自動保留下列屬性:
- attributeID
- attributeSyntax
- distinguishedName
- dNReferenceUpdate
- flatName
- governsID
- groupType
- instanceType
- lDAPDisplayName
- legacyExchangeDN
- mS-DS-CreatorSID
- mSMQOwnerID
- name
- nCName
- objectClass
- objectGUID
- objectSid
- oMSyntax
- proxiedObjectName
- replPropertyMetaData
- sAMAccountName
- securityIdentifier
- subClassOf
- systemFlags
- trustAttributes
- trustDirection
- trustPartner
- trustType
- userAccountControl
- uSNChanged
- uSNCreated
- whenCreated
也會保留具有 searchFlags 屬性值且包含0x00000008的其他屬性。
下列屬性值一律會從已刪除的物件中移除:
- objectCategory
- samAccountType
已刪除物件的安全性描述元會保留,而且不會傳播可繼承的訪問控制專案。 刪除物件時,安全性描述元會依目前保留。
已清除已刪除物件和從中刪除的物件連結。 這會在刪除物件之後於背景中執行。 如果在清除所有連結之前還原已刪除的物件,將會收到錯誤。
如果在 Windows Server 2003 域控制器上刪除物件, 則已刪除物件的 lastKnownParent 屬性會設定為刪除物件時包含物件的容器辨別名稱。
已刪除的物件會保留在已刪除的物件容器中,一段時間稱為 墓碑存留期。 根據預設,墓碑存留期為 60 天,但系統管理員可以變更此值。 在墓碑存留期到期之後,物件就會從目錄服務永久移除。 為了避免遺漏刪除作業,應用程式必須比墓碑存留期更頻繁地執行累加同步處理。
Windows Server 2003 新增還原已刪除物件的能力。 如需已刪除物件還原的詳細資訊,請參閱 還原已刪除的物件。
刪除專案時,無法修改物件的屬性。 在 Windows Server 2003 中,可以在已刪除的物件上修改安全性描述元 ( ntSecurityDescriptor 屬性)。 這是在還原對象的人員沒有強制屬性的寫入許可權時,允許還原物件。 若要更新已刪除物件上的安全性描述元,呼叫端除了一般 WRITE_DAC 和 WRITE_OWNER 存取之外,還必須在命名內容上擁有 “Reanimate Tombstone” 控制訪問許可權。 即使安全性描述元受到限制,系統管理員也可以先取得對象的擁有權,假設系統管理員具有 SE_TAKE_OWNERSHIP_NAME 許可權,然後修改安全性描述元。 若要這樣做,請使用 ldap_modify_ext_s 函式搭配 LDAP_SERVER_SHOW_DELETED_OID 控件。 修改清單必須包含 ntSecurityDescriptor 屬性的單一屬性取代專案。