Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Программирование для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

15.19 ADSI. Работа с объектами пользователей и интерфейс IADsUser

Интерфейс IADsUser в скриптах ADSI на VBScript, создание объектов пользователей в Active Directory, работа со свойствами объекта пользователя, получение информации о членстве пользователей в группе из скрипта

На практике чаще всего средствами ADSI приходится работать с объектами пользователей. Например, можно настраивать программным образом параметры сразу для больших групп пользователей, можно синхронизировать информацию в Active Directory с информацией в других службах каталогов и источников данных (например, с программами учета кадров), создавать отчеты и т.п.

Создание объекта пользователя обычно производится при помощи метода IADsContainer.Create() вышестоящего контейнерного объекта (домена или организационного подразделения). При этом обязательно нужно при помощи метода IADs.Put() для создаваемого объекта присвоить в кэше значения всем обязательным свойствам: иначе вызов метода IADs.SetInfo() для сохранения созданного объекта пользователя приведет к ошибке. Создать объект пользователя в Active Directory можно, например, так:

Dim oUser, oOU

Set oOU = GetObject("LDAP://OU=HQ,DC=nwtraders1,DC=msft")

Set oUser = oOU.Create("user", "CN=Сергей Петров")

oUser.Put "samAccountName", "SPetrov"

oUser.Put "userPrincipalName", "SPetrov@nwtraders1.msft"

oUser.SetInfo

oUser.SetPassword "P@ssw0rd"

oUser.AccountDisabled = False

oUser.SetInfo

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

Dim oUser

Set oUser = GetObject("LDAP://CN=Сергей Петров,OU=HQ,DC=nwtraders1,DC=msft")

Wscript.Echo oUser.AccountDisabled

Работа с объектами пользователей, конечно, поддерживается и средствами провайдера LDAP, и средствами провайдера WinNT (в этом случае вам не будет доступно около 30 свойств объекта пользователя, появившиеся в Windows 2000 и Windows 2003, такие, как Department, Division, FaxNumber и т.п.). Для получения ссылки на объект пользователя можно использовать и его SID.

Объект пользователя в ADSI поддерживает свойства и методы стандартных интерфейсов IADs и IADsPropertyList. Также для него реализован специализированный интерфейс IADsUser, в который сведены свойства для доступа к наиболее часто используемым атрибутам объекта пользователя в Active Directory. Отметим, что для объекта пользователя в Active Directory предусмотрено огромное количество атрибутов (несколько сотен), и для многих из них доступ возможен только напрямую, через интерфейсы IADsPropertyList/PropertyEntry/PropertyValue (но не через IADsUser). Тем не менее во многих ситуациях применение интерфейса IADsUser может оказаться очень удобным.

Большая часть свойств (Department, Division, EmailAddress, FaxNumber, FirstName, FullName и т.п.) очевидна и комментариев не требует. Ниже будут рассмотрены некоторые не самые очевидные свойства, предусмотренные в этом интерфейсе, а также все методы:

  • AccountDisabled — это свойство определяет, отключена ли учетная запись. По умолчанию объект пользователя создается в отключенном состоянии. Для этого свойства используются только значения True и False. Однако для атрибута UserAccountControl объекта пользователя в Active Directory, который соответствует этому свойству, предусмотрено несколько десятков значений, которые вам могут пригодиться. Отметим только, что значению False свойства AccountDisabled соответствует значение атрибута UserAccountControl 544, а значению True (то есть учетная запись отключена) — 546.
  • AccountExpirationDate — время и дата, когда учетная запись автоматически отключится. Обычно используется для временных сотрудников.
  • BadLoginAddress — информация о компьютере, с которого была произведена последняя попытка неудачного входа (с неверным паролем) для данной учетной записи. Эту информацию (свойство доступно только на чтение) можно использовать для обнаружения вторжений.
  • BadLoginCount — информация о количестве неудачных попыток входа (с неверным паролем) после последнего сброса счетчика.
  • GraceLoginsAllowed — информация о количестве входов в сеть, которые пользователь может произвести после того, как срок его пароля истек.
  • GraceLoginsRemaining — количество оставшихся входов в сеть для данного пользователя (это свойство доступно только тогда, когда срок действия пароля закончился).
  • IsAccountLocked — заблокирована ли учетная запись пользователя после превышения порогового значения неверных попыток входа. Это свойство доступно и на чтение, и на запись, поэтому его можно использовать для разблокирования учетной записи.
  • LastFailedLogin — информация о дате и времени последней неудачной попытки (по причине неверного пароля) входа пользователя. Можно использовать для расследования попыток вторжения.
  • LastLogin — информация о дате и времени последнего входа в сеть.
  • LastLogoff — информация о последнем выходе пользователя из сети (если этот выход был произведен корректно).
  • MaxLogins — информация о максимальном количестве пользователей, которые могут одновременно входить в сеть от имени данной учетной записи.
  • PasswordExpirationDate — дата и время, когда срок действия пароля данного пользователя истечет.
  • PasswordLastChanged — дата и время последнего изменения пароля.
  • PasswordMinimumLength — минимальная длина пароля в символах.
  • PasswordRequired — это свойство (доступное и на чтение, и на запись) позволяет определить, обязателен ли пароль для данного пользователя.
  • RequireUniquePassword — это свойство (также доступное и на чтение, и на запись) позволяет определить, распространяются ли на данную учетную запись требования по уникальности пароля (то есть будет ли к нему применяться проверка истории паролей).
  • ChangePassword() — этот метод позволяет поменять пароль пользователя. В качестве параметров этот метод принимает старый пароль и новый пароль. Обычно этот метод используется для того, чтобы создать свой собственный интерфейс, при помощи которого пользователь сможет менять себе пароль.
  • SetPassword() — этот метод предназначен уже не для пользователей, а для администраторов. Он позволяет поменять пароль, не зная старого. В качестве параметра он принимает только новый пароль.
  • Groups() — этот метод позволяет вернуть коллекцию объектов групп, в которые входит данный пользователь. При этом системные группы (такие, как Domain Users) не учитываются. Этот метод удобно использовать для различных проверок. Пример его применения может выглядеть, например, так:

Dim oUser

Dim oGroups, oGroup

Set oUser = GetObject _

("LDAP://CN=Сергей Петров,OU=HQ,DC=nwtraders1,DC=msft")

Set oGroups = oUser.Groups

For Each oGroup In oGroups

    Wscript.Echo oGroup.ADsPath

Next

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru