Поделиться через


Создание пользователя

Чтобы создать пользователя в службах домен Active Directory, создайте объект пользователя в контейнере домена домена, в котором нужно разместить пользователя. Пользователи могут создаваться в корне домена, в подразделении или в контейнере.

При создании объекта пользователя необходимо также задать атрибуты, перечисленные в следующей таблице, чтобы задать объект в качестве юридического пользователя, распознаваемого службами домен Active Directory и системой Безопасность Windows.

Атрибут Description
Cn Указывает имя объекта пользователя в каталоге. Это будет относительное различающееся имя объекта (RDN).
sAMAccountName Указывает строку, которая является именем, используемой для поддержки клиентов и серверов из предыдущей версии Windows. Значение sAMAccountName должно быть меньше 20 символов для поддержки клиентов из предыдущей версии Windows.
SAMAccountName должен быть уникальным среди всех объектов субъекта безопасности в домене. Чтобы убедиться, что sAMAccountName является уникальным в домене, необходимо выполнить запрос к домену.
sAMAccountName является необязательным атрибутом. Сервер создаст случайное значение sAMAccountName , если он не указан.

Можно также задать другие атрибуты. Следующие атрибуты пользователя задаются со значениями по умолчанию, если во время создания их явно не задано.

Атрибут Description
accountExpires Указывает, когда истекает срок действия учетной записи. Значение по умолчанию — TIMEQ_FOREVER, указывающее, что срок действия учетной записи никогда не истекает.
nTSecurityDescriptor Дескриптор безопасности создается на основе определенных правил. Дополнительные сведения см. в разделе "Настройка дескрипторов безопасности" в новых объектах каталога.
objectCategory Указывает категорию пользователя. Значение по умолчанию — Person.
name Указывает имя пользователя. По умолчанию используется значение cn.
pwdLastSet Указывает, когда пользователь последней задал пароль. Значение по умолчанию равно нулю, указывающее, что пользователь должен изменить пароль при следующем входе.
userAccountControl Содержит значения, определяющие несколько функций входа и учетной записи для пользователя.
По умолчанию задаются следующие флаги:
  • UF_ACCOUNTDISABLE — учетная запись отключена.
  • UF_PASSWD_NOTREQD — пароль не требуется.
  • UF_NORMAL_ACCOUNT — тип учетной записи по умолчанию, представляющий типичного пользователя.
Memberof Указывает группу или группы, которые пользователь является прямым членом. Значение по умолчанию — "Пользователи домена".

Пользователь создается путем привязки к нужному контейнеру, а затем с помощью одного из следующих методов. Атрибуты cn и sAMAccountName должны быть заданы перед фиксацией пользователя на сервере.

Метод Description
IADsContainer.Create Атрибут cn берется из параметра bstrRelativeName . Новый пользователь должен быть зафиксирован путем вызова IADs.SetInfo или объекта не будет создан. Дополнительные сведения см. в примере кода для создания пользователя.
IDirectoryObject::CreateDSObject Атрибут cn взят из параметра pszRDNName . Новый пользователь фиксируется при вызове CreateDSObject. Дополнительные сведения см. в примере кода для создания пользователя.
DirectoryEntries.Add Атрибут cn берется из параметра name . Новый объект пользователя должен быть зафиксирован путем вызова DirectoryEntry.CommitChanges или не будет создан объект. Дополнительные сведения см. в разделе "Добавление объектов каталога".

Новый пользователь должен быть зафиксирован на сервере перед изменением атрибутов, отличных от cn и sAMAccountName. Это связано с тем, что учетная запись пользователя на самом деле не существует, пока пользователь не будет зафиксирован. Если атрибут извлекается или изменяется для объекта, который не существует на сервере, возникнет ошибка. Это включает вызов метода IADsUser.SetPassword. Например, при создании пользователя с помощью IADsContainer.Create будет выполняться следующая последовательность:

  1. Вызовите IADsContainer.Create, чтобы создать пользователя в локальном кэше с указанным cn.
  2. Задайте атрибут sAMAccountName требуемому значению с помощью метода IADs.Put.
  3. Теперь измените другие атрибуты, например userAccountControl. Это ограничение также применяется к свойствам ADSI, таким как IADsUser.AccountDisabled, и к таким методам, как IADsUser.SetPassword.
  4. Вызовите IADs.SetInfo, чтобы зафиксировать нового пользователя на сервер.

При создании новой учетной записи пользователя она отключена по умолчанию. Учетная запись должна быть включена вручную или программно. Чтобы программно включить учетную запись пользователя, удалите флаг ADS_UF_ACCOUNTDISABLE из атрибута userAccountControl.

При создании новой учетной записи пользователя атрибут userAccountControl для учетной записи автоматически имеет набор флагов UF_PASSWD_NOTREQD, указывающий, что пароль не требуется для учетной записи. Если политики безопасности домена, созданного учетной записью, требуют пароля для всех учетных записей пользователей, то флаг UF_PASSWD_NOTREQD должен быть удален из атрибута userAccountControl для учетной записи.

Пример кода для создания пользователя