建立使用者
若要在 Active Directory 網域服務 中建立使用者,請在您要放置使用者之網域的網域容器中建立用戶物件。 用戶可以在網域的根目錄、組織單位或容器內建立。
當您建立用戶物件時,也必須設定下表所列的屬性,將物件設定為 Active Directory 網域服務 和 Windows 安全性 系統所辨識的法律使用者。
屬性 | 描述 |
---|---|
快遞 之 家 | 指定目錄中用戶物件的名稱。 這會是對象的相對辨別名稱 (RDN)。 |
sAMAccountName | 指定字串,這個字串是用來支援舊版 Windows 中的用戶端和伺服器的名稱。 sAMAccountName 應該小於 20 個字元,以支援舊版 Windows 的用戶端。 sAMAccountName 在網域內的所有安全性主體對象中必須是唯一的。 您應該對網域執行查詢,以確認 sAMAccountName 在網域內是唯一的。 sAMAccountName 是選擇性屬性。 如果未指定任何值,伺服器將會建立隨機 sAMAccountName 值。 |
您也可以設定其他屬性。 如果您未在建立時明確設定這些屬性,則會使用預設值來設定下列用戶屬性。
屬性 | 描述 |
---|---|
accountExpires | 指定帳戶到期的時間。 默認值為 TIMEQ_FOREVER,表示帳戶永遠不會過期。 |
nTSecurityDescriptor | 根據特定規則建立安全性描述元。 如需詳細資訊,請參閱 如何在新的目錄對象上設定安全性描述元。 |
objectCategory | 指定用戶類別。 預設值為 「Person」。。 |
name | 指定使用者名稱。 預設值是針對 cn 設定的值。 |
pwdLastSet | 指定使用者上次設定密碼的時間。 默認值為零,表示用戶必須在下次登入時變更密碼。 |
userAccountControl | 包含值,可決定用戶的數個登入和帳戶功能。 根據預設,會設定下列旗標:
|
memberOf | 指定使用者是直接成員的群組或群組。 預設值為 「網域使用者」。 |
用戶是藉由系結至所需的容器,然後使用下列其中一種方法來建立。 在用戶認可至伺服器之前,必須先設定 cn 和 sAMAccountName 屬性。
方法 | 描述 |
---|---|
IADsContainer.Create | cn 屬性取自 bstrRelativeName 參數。 必須藉由呼叫 IADs.SetInfo 來認可新的使用者,否則將不會建立物件。 如需詳細資訊,請參閱 建立使用者的範例程序代碼。 |
IDirectoryObject::CreateDSObject | cn 屬性取自 pszRDNName 參數。 呼叫 CreateDSObject 時,會認可新的使用者。 如需詳細資訊,請參閱 建立使用者的範例程序代碼。 |
DirectoryEntries.Add | cn 屬性取自 name 參數。 必須藉由呼叫 DirectoryEntry.CommitChanges 來認可新的使用者對象,否則將不會建立物件。 如需詳細資訊,請參閱 新增目錄物件。 |
新的用戶必須先認可至伺服器,才能修改 cn 和 sAMAccountName 以外的任何屬性。 這是因為在認可使用者之前,用戶帳戶實際上並不存在。 如果針對伺服器上不存在的物件擷取或修改屬性,就會發生錯誤。 這包括呼叫 IADsUser.SetPassword 方法。 例如,使用 IADsContainer.Create 建立使用者時,會遵循下列順序:
- 呼叫 IADsContainer.Create,以使用指定的 cn 在本機快取中建立使用者。
- 使用 IADs.Put 方法,將 sAMAccountName 屬性設定為所需的值。
- 現在修改其他屬性,例如 userAccountControl。 這項限制也適用於 ADSI 屬性,例如 IADsUser.AccountDisabled,以及 IADsUser.SetPassword 等方法。
- 呼叫 IADs.SetInfo ,將新使用者認可到伺服器。
建立新的用戶帳戶時,預設會停用。 必須手動或以程式設計方式啟用帳戶。 若要以程式設計方式啟用用戶帳戶,請從 userAccountControl 屬性中移除 ADS_UF_ACCOUNTDISABLE 旗標。
建立新的用戶帳戶時, 帳戶的userAccountControl 屬性會自動 設定UF_PASSWD_NOTREQD 旗標,這表示帳戶不需要密碼。 如果中建立帳戶的安全策略需要所有用戶帳戶的密碼,則必須從帳戶的userAccountControl屬性中移除UF_PASSWD_NOTREQD旗標。