Школа физики

Школа физики

Персональный сайт учителя физики
Лях Владимира Петровича

Понедельник, 01 сентября 2014 00:00

Автоматическое создание пользователей в Активном Каталоге(Active Directory) с помощью PowerShell

Автор
Оцените материал
(9 голосов)

На одном из занятий кружка «Информатика» мы учились создавать профили пользователей в Активном Каталоге (Active Directory) нашей доменной сети. Когда пользователей мало, делать это можно вручную. Но когда число пользователей переваливает за сотню… занятие становится утомительным.

Мы с ребятами занялись вопросом автоматизации этого процесса. Теоретическое изучение темы показало, что достичь цели можно несколькими способами:

  1. Сценарием на языке Visual Basic Scripting Edition, который на сервере Active Directory интерпретируется компонентом Windows Script Host.
  2. Windows PowerShell
  3. Программы сторонних производителей, предназначенные для администрирования AD

Так как Microsoft рекомендует для администрирования инструмент Windows PowerShell, реализовывать задуманное на практике мы решили именно этим способом.

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

Итак, практическая реализация автоматического создания пользователей в Активном Каталоге ( Active Directory) при помощи Windows PowerShell:

В первую очередь создаём текстовый файл с данными пользователей и необходимыми параметрами. Первая строчка файла должна содержать названия параметров, остальные строчки – значения этих параметров, разделённые запятыми.

Все возможные параметры можно посмотреть на вкладке «Редактор атрибутов» в свойствах пользователя AD. Включается видимость вкладки «Редактор атрибутов» в главном меню панели администрирования «Компьютеры и пользователи»: в пункте меню «Вид» нужно установить флажок «Дополнительные параметры».

Естественно, в создаваемом текстовом файле не обязательно указывать все параметры пользователя. Мы в нашем текстовом файле указали только самые необходимые: Имя, Фамилия, Логин, Пароль. В итоге получился файл такого вида:

Name,Surname,Login,Password
Федор,Иванов,f.ivanov,QWERty
Вячеслав,Ломаков,v.lomakov,DERWry

Файл сохранили в формате csv, как рекомендуют многие гуру в своих блогах. Кстати, файл csv удобно создавать из MS Office Excel, это один из встроенных форматов, в котором можно сохранить документ Excel. Однако, забегая вперед, скажу, что с csv у нас возникли проблемы – имена пользователей, написанные кириллицей, занеслись в профили пользователей AD в неправильном виде. Проблема с кодировкой. Пришлось сохранять csv в формате txt, и вот тогда всё прошло гладко.

Созданный текстовый файл мы поместили в сетевую общую папку и приступили к созданию скрипта.

В первой строчке импортируем модули PowerShell для AD:

  1. Import-Module ActiveDirectory  

Затем импортируем пользователей из нашего текстового файла:

 
  1. $Users = Import-CSV $1 –Delimiter “;”  

Параметр $1 означает, что в качестве пути к CSV-файлу будет использоваться первый по счету параметр командной строки. Запускаться скрипт будет следующим образом:

  1. PS C:\Users\admin > Add_Users.ps1 c:\temp\users.csv  

Users.csv – это наш созданный текстовый файл. Далее нам нужно пройтись по всему массиву пользователей из списка:

  1. Foreach($CurrentUser in $Users) {  

Знак открытой фигурной скобки означает начало цикла. Этот цикл проходит по всем объектам списка, и прискаивает текущий объект переменной $CurrentUser.

Затем, для упрощения – присвоим значения соответствующих полей отдельным переменным:

  1. $Name = $CurrentUser.Name  
  2. $Surname = $CurrentUser.Surname  
  3. $Login = $ CurrentUser.Login  
  4. $Password = $CurrentUser.Password  

Для того, чтобы задать пароль пользователю – необходимо перевести его в шифрованный формат SecureString:

  1. $SecurePwd = ConvertTo-SecureString -AsPlainText -Force -String $Password  

Теперь сформируем дисплейное имя пользователя, его логин, User Principal Name.

  1. $Displayname = $Name + “ “ + $Surname #Дисплейное имя: Ivan Ivanov  
  2. $UserPrincipalName = $Login + “@nizhnepopov.ru”  

Наконец, можно перейти к самой главной процедуре: созданию учетной записи пользователя.

  1. New-ADUser $Displayname –SamAccountName $Login –UserPrincipalName $UserPrincipalName -DisplayName $DisplayName -AccountPassword $SecurePwd -ChangePasswordAtLogon 1 -Path $Path  

Здесь, в принципе, все параметры понятны. Параметр -ChangePasswordAtLogon 1 означает, что пользователю будет предложено сменить пароль сразу после логина.
По умолчанию в PowerShell, в отличие от стандартного визарда в оснастке ActiveDirectory Users And Computers учетные записи только что созданных пользователей будут отключены (Disabled). Поэтому сразу после создания учетные записи нужно включить:

  1. Enable-ADAccount $Login  

Теперь нужно закрыть цикл знаком «}». Cкрипт готов!

Целиком скрипт выглядит так:

  1. Import-Module ActiveDirectory  
  2.   
  3. $Users = Import-CSV "C:\Users\Documents\Ученики.txt" –Delimiter “;”  
  4.   
  5. Foreach($CurrentUser in $Users) {  
  6.   
  7. $Name = $CurrentUser.Name  
  8.   
  9. $Surname = $CurrentUser.Surname  
  10.   
  11. $Password = $CurrentUser.Password  
  12.   
  13. $Login = $CurrentUser.Login  
  14.   
  15. $SecurePwd = ConvertTo-SecureString -AsPlainText -Force -String $Password  
  16.   
  17. $UserPrincipalName = $Login + “@nizhnepopov.local”  
  18.   
  19. $Displayname = $Name + “ “ + $Surname #в кавычках — пробел!  
  20.   
  21. New-ADUser $Displayname –SamAccountName $Login –UserPrincipalName $UserPrincipalName -OtherName $Name -DisplayName $DisplayName -GivenName $Name -Surname $Surname -AccountPassword $SecurePwd -Path "OU=Ученики, OU=Школа, DC=nizhnepopov, DC=local"  
  22.   
  23. Enable-ADAccount $Login  
  24.   
  25. }  
Донец 14

Выпускник школы

Комментарии   

+1 #2 серж 22.05.2017 06:48
Люди тут так-то PowerShell изучают, это полезно. ;-)
Цитировать
0 #1 Алексей 28.09.2016 10:44
Советую воспользоваться утилитой "Active Directory Bulk Operations". Программа позволяет пакетно создавать и редактировать учетные записи пользователей, а так же копировать учетные записи с сохранением членства в группах и полной иерархией организационных единиц в другой домен! Скачать можно тут: http://www.sysadminsoft.ru/active-directory-bulk-operations
Цитировать

Комментарии

  • Евгений Евгений 25.11.2017 16:51
    Наконец то Урок по всем современным требованиям. Мугамба доволен!!!!!!!!! Не просто СПАСИБО! А ...

    Подробнее...

     
  • Олег Олег 02.11.2017 16:17
    Владимир, а где сегодня можно купить омагничиватель воды СО-2 или СО-3?

    Подробнее...

     
  • Тимур Тимур 22.09.2017 08:36
    Доброго времени суток, на вашем сайте наткнулся на фотографию учебного вольтметр-термо метра ...

    Подробнее...