div.main {margin-left: 20pt; margin-right: 20pt}
Администрирование доменов в Windows NT
Tower, VBstep.ru
Cтатья посвящена работе с доменами Windows NT. На первый взгляд кажется,
что вполне можно обойтись стандартными средствами администрирования, которые
существуют в операционной системе, но существует рад задач, в которых необходимо
автоматизировать создание и удаление групп пользователей, самих пользователей и
включение пользователей в группы. В своей практике, я столкнулся с проблемой
написания программы, которая обрабатывает лог MSProxy, а пользователям, превысившим
лимит использования интернет, выход закрывается. Для этого необходимо было просто
удалить пользователей из определенной группы. В начале следующего месяца необходимо
вернуть всех пользователей интернет в группу доступа. Вот при создании такой программы
я и начал изучение функций работы с доменной организацией Windows NT.
В статье мы рассмотрим создание и удаление группы в домене, создание и
удаление пользователя, добавление и удаление пользователя из группы. Все будет
рассматриваться на примерах, поэтому определимся с некоторыми начальными условиями.
Домен, с которым мы будем работать, называется "Test". Группа, с которой мы будем
работать - "TestGroup". Пользователь - "TestUser". Для того чтобы было проще работать
с проектом, входим в меню References и подключаем Active DS Type Library. Итак,
начинаем работать.
Не будем долго рассказывать о структуре домена, группах и тому подобное. Это
выходит за рамки статьи, а сразу приведем рабочий код программы с комментариями.
Dim domain As IADsDomain 'Объявляем переменную типа домена
Dim grp As IADsGroup 'Объявляем переменную типа группа
' Получаем объект домена Test
Set domain = GetObject("WinNT://Test")
'Создаем новую группу пользователей
Set grp = domain.Create("group", "TestGroup")
' Устанавливаем свойство типа группы.
grp.Put "groupType", ADS_GROUP_TYPE_DOMAIN_LOCAL_GROUP
' Пишем описание группы
grp.Put "Description", "Группа для примера работы с доменом"
' Сохраняем информацию
grp.SetInfo
'Удаляем группу из домена.
domain.Delete "group", "groupType"
Вот и все. Создать группу и удалить чрезвычайно просто.
Создание пользователя более кропотливая задача, нежели создание группы, так как
пользователь домена имеет больше атрибутов, нежели группа. Для начала рассмотрим
простой пример создания пользователя, и что из этого получается.
Dim domain As IADsDomain
Dim usr As IADsUser 'Объявляем переменную типа пользователь
Set domain = GetObject("WinNT://Test")
' Создаем нового пользователя
Set usr = domain.Create("user", "TestUser")
' Сохраняем информацию о пользователе
usr.SetInfo
domain.Delete "user", "TestUser" ' Удаляем пользователя
Результатом этих действий будет создание нового пользователя с именем TestUser.
Он будет иметь еще некоторые атрибуты, а именно:
Full Name будет TestUser
Пароль будет пустым
Будет установлено свойство сменить пароль при первом входе
Password Never Expires будет установлено в FALSE
Пользователь будет включен только в одну группу - Domain User
Приведу несколько примеров установки атрибутов пользователя, так как стандартные
установки не всегда хороши. Итак,
' Установка описания для пользователя
usr.Put "Description", "Тестовый пользователь"
' Без комментариев, как говориться
usr.Put "EmailAddress", "test@test.com"
' Полное имя пользователя
usr.Put "FullName", "Test User"
' Заблокировать пользователя
usr.Put "AccountDisabled", 1
Вот и все, что можно установить с помощью Put, но если вы внимательно читали
статью, то уже начинаете меня ругать. Почему? Действительно я не описал возможность
установить пароль для пользователя. С помощью метода Put это сделать невозможно,
поэтому существует специальный метод SetPassword. А вот и пример использования
usr.SetPassword "blablabla"
На этом знакомство с заведением и удалением пользователя мы закончим и рассмотрим
последнюю тему статьи - включение и исключение пользователя из групп.
Для того чтобы добавить пользователя в группу необходимо воспользоваться следующим методом:
grp.Add ("WinNT://Test/TestUser")
Удаление осуществляется с помощью grp. Remove ("WinNT://Test/TestUser").
grp - объект группы в домене NT.
Вот и все. Осталось сказать несколько заключительных слов.
Определить, входит пользователь в группу или нет, можно с помощью функции IsMember,
которая возвращает логическое значение "да" и "нет", смысл которого понятен и без
объяснения.
Что мы узнали из этой статьи? Мы узнали о том, как работать с доменом. Немного, но
достаточно для того, чтобы найти массу полезных применений. Например, если немного
подумать, то можно без проблем узнать, сколько пользователей зарегистрировано в домене.
|