Сценарии создания основных объектов ActiveDirectory с использование PowerShell

Posted: 24.09.2010 in MCP-клуб, Microsoft
Метки:,
Вчера на MCP-клубе, после доклада, во время обсуждения Ю.Лебедеву был задан вопрос о практических сценариях применения PoSH в среде предприятия. Как я уже писал, из-за проблем с оборудованием, Юрию пришлось показывать и рассказывать про Posh без использования заготовок и виртуальных машин.
Несмотря на наличие на сайте у Юры web-каста про управление объектами Active Directory различными способами, в т.ч. PowerShell, хочу поделится своими заготовками.
Обычно примеры сценариев для создания объектов  Active Directory выглядят следующим образом:
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objUser = $objDomain.Create(«user», «CN=» + $UserDisplayName) #This creates a local object for you to update
$objUser.Put(«givenName»,$UserFirstName)
$objUser.Put(«initials»,$UserMiddleInit)
$objUser.Put(«sn»,$UserLastName)
$objUser.Put(«sAMAccountName»,$UserLoginID)
$objUser.Put(«displayName»,$UserDisplayName)
$objUser.Put(«userPrincipalName»,$UserPrincipalName)
$objUser.SetInfo() #This will create the User ID on the domain, disabled.  This is required for you to set a password or enable the ID.
$objUser.AccountDisabled = $false #By default the User ID is disabled and must be enabled to use.
$objUser.SetPassword(«Default123») #Set this password to anything you need it to be
$objUser.SetInfo()
Однако в моём случае выполнение такого сценария не заладилось, и чтобы долго не искать причины, я набросал несколько своих, создающих основные типы объектов в Active Directory. Создавать десятки и сотни объектов необходимости не было, поэтому подгрузка данных из внешних файлов не рассматривалась.
Сценарий 1: Создание OU.
$objADSI = [ADSI]“LDAP://dc=domain,dc=local”
$Class = “organizationalUnit”
$OU = “OU=NewOU”
$objOU = $objADSI.create($Class, $OU)
$objOU.SetInfo()
$Desription = «Описание создаваемого OU»
$objOU.Description=$Desription
$objOU.SetInfo()
Сценарий 2: Создание групп безопасности.
$objADSI = [ADSI]“LDAP://ou=NewOU,dc=oesk,dc=local”
$ADS_GROUP_TYPE_GLOBAL_GROUP = 0x00000002
$GroupName = «SecurityGroupName»
$Description=»Описание создаваемой группы»
$objGroup=$objADSI.Create(«group», «CN=»+ $GroupName)
$objGroup.SetInfo()
$objGroup.sAMAccountName=$GroupName
$objGroup.Description=$Description
$objGroup.SetInfo()
Сценарий 3: Создание пользователей.
$objADSI = [ADSI]“LDAP://ou=NewOU,dc=oesk,dc=local”
$Class = “user”
#Создание объекта
$CN = “CN=Иванов Иван Иванович”
$objUser = $objADSI.create($Class, $CN)
$objUser.SetInfo()
#Ввод данных о сотруднике
$Login=»IvanovII»
$objUser.SamaccountName=$Login
$objUser.DisplayName=»Иванов Иван Иванович»
$objUser.GivenName=»Иван Иванович»
$objUser.sn=»Иванов»
$objUser.Description=»специалист отдела»
$objUser.mail=$Login+»@pochta.ru»
$objUser.userPassword=»P@r0l15″
$objUser.SetInfo()
#Активация аккаунта
$objUser.psbase.invokeset(«AccountDisabled»,»False»)
$objUser.SetInfo()
Как и рассказывал Юрий, я тоже присоединяюсь к его словам, создание сценариев, выполнение и просмотр их результатов удобнее всего с использование графической консоли PowerShell_ISE. В ней в любой момент удобнее всего отследить в каком месте вкралась ошибка, и исправить ее.
Реклама
- комментарии
  1. Александр:

    Вопрос был мой, спасибо за примеры.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s