Использование powershell для управления пользователями домена

by itisgood

В доменной среде часто необходимо использовать командную стрку для управления пользователями домена, и тогда вы можете использовать инструменты командной строки Active Directory Dsquery.exe или CSVE и Ldifde, на самом деле использование Windows Powershell для управления операциями довольно удобно.

Для создания примера пользователя выполните следующие действия: Создайте пользователя домена. Самый простой сценарий Windows Powershell выглядит так:

$objOU=[ADSI]”LDAP://OU=People,DC=contoso,DC=com”
$objUser=$objU.Create(“user”,”CN=Mary North”)
$odjUser.Put=(“sAMAccountName”,”mary.north”)
$objUser.SetInfo()

В приведенном выше коде перечислены четыре основных шага для создания пользователя с использованием Active Directory с помощью Windows Powershell.

Подробности будут описаны ниже.

Подключение к контейнеру Active Directory

Чтобы создать такой объект, он фактически создает объект для контейнера объекта.

Таким образом, первая потребность в контейнере – реализация определенной операции, то есть «метод».

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

Чтобы подключиться к объекту Active Directory, вы должны отправить строку запроса LDAP, то есть идентификатор протокола LDAP: //, за которым следует DN объекта.

Итак, первая строка кода должна выглядеть так:

$objOU=[ADSI]"LDAP://OU=People,DC=contoso,DC=com"
Windows Powershell должен использовать адаптер типа ADSI для создания объектов, которые представляют подразделение People и назначают его компоненту.
Переменная с именем objOU отражает идентификацию типа переменной, начиная с obj только стандартом программирования, но действительная переменная может использовать любое имя.

Вызовите метод Create

На этом этапе переменная $ objOU может представлять подразделение People.

Затем вы можете использовать метод создания контейнера, чтобы контейнер создал объект.

Метод Create должен предоставить два параметра: класс объекта и объект RDN.

RDN объекта ссылается на имя объекта в родительском контейнере, и большинство классов объектов используют формат «CN = object name» в качестве собственного RDN.

Однако RDN OU находится в формате «OU = название организационной единицы», а RDN домена «DN = имя домена».

Таким образом, следующий код может использовать RDN «CN = Mary North» для создания пользовательских объектов:

$objUser=$objU.Create("user","CN=Mary North")

Заполните пользовательские атрибуты

Важно отметить, что новый объект и его изменения не сохраняются до тех пор, пока изменения не будут объединены, и изменения не могут быть успешно объединены до заполнения всех необходимых атрибутов.

Пользовательский объект должен быть удобным, включая windows 2000 перед именем входа.

Имя атрибута LDAP для атрибута – имя sAMAccountName, поэтому следующей строке кода необходимо присвоить объект sAMAccountName, и вам нужно использовать метод Put. Put – стандартный метод для записи свойств объекта, а Get – стандартный метод для извлечения свойств объекта. Код здесь должен выглядеть так:

$odjUser.Put=("sAMAccountName","Mary North")
Для объектов пользователя существуют другие обязательные атрибуты, включая идентификатор безопасности объекта (SID), но эти объекты будут автоматически создаваться при создании Active Directory, когда новый пользователь будет отправлен в каталог.

Использование метода SetInfo для слияния изменений

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

$objUser.SetInfo()

Заполните другие пользовательские атрибуты

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

Раньше использование пользовательского объекта Метод Put для записи атрибутов, поэтому здесь нужно только повторно вызвать метод, указать необходимость добавления каждого атрибута:

$odjUser.Put=(“sAMAccountName”, ”$samAccountName”)
$odjUser.Put=(“displayName”, ”$displayname”)
$odjUser.Put=(“sn”, “$sn”)
$objUser.SetInfo()

Каков пароль пользователя? Вы не можете установить пароль пользователя с помощью метода Put. Вместо этого вы должны использовать метод SetPassword, например:

$objUser.SetPassword("passwd")

You may also like

Leave a Comment