Создать пользователя в домене Active Directory с помощью PowerShell и ADUC

В этой статье мы рассмотрим, как создать (добавить) нового пользователей в домен Active Directory. Вы можете создать учетные записи пользователей в Active Directory с помощью графических mmc оснасток Active Directory Users and Computers ( dsa.msc )/ AD Administrative Center ( dsac.msc ) или с помощью скриптов PowerShell.

Как создать нового пользователя в домене Active Directory?

Самый простой способ создания нового доменного пользователе в Active Directory – воспользоваться графической mmc консоль ADUC.

  1. Запустите консоль Active Directory Users and Computers, выполнив команду dsa.msc ;
  2. Выберите контейнер (Organizational Unit, OU) Active Directory, в котором вы хотите создать нового пользователя. Щелкните по нему правой кнопкой и выберите New -> User; создать нового пользователя Active Directory вручную
    Для создания пользователей в домене ваша учетная запись должна состоять в группе администраторов домена, Account Operators или вы можете делегировать права на создание пользователей другим пользователям/группам.
  3. Укажите имя, фамилию и инициалы пользователя, выберите его userPrincipalName (имя входа пользователя) и sAMAccountName, нажмите Next;укажите имя и фаамилию нового пользователя AD и имя для входа в Windows
  4. Затем задайте пароль пользователя. На этой форме вы можете дополнительно включить для пользователя следующие опции атрибута UserAccountControl:задать пароль нового пользователя Active Directory
    User must change password at next logon — пользователь при первом входе должен будет изменить пароль;
    User cannot change password — пользователь не сможет самостоятельно изменить свой пароль (смена/сброс пароля может быть выполнена только администратором);
    Password never expires — срок действия пароля пользователя никогда не истечет (если эта опция не включена, тогда срок действия пароля пользователя определяется политикой паролей Active Directory);
    Account is disabled — учетная запись пользователя в домене отключена и не может использоваться для входа.
  5. Найдите пользователя в консоли ADUC и откройте его свойства. Здесь вы можете задать дополнительные атрибуты пользователя: номер телефон, адрес, описание, должность, компанию (и т.д.), добавить его в группы AD, и изменить другие атрибуты на вкладке Attribute Editor.новый пользователеь в домене active directory

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

скопировать пользователя AD

Щелкните по пользователю и выберите Copy. При копировании пользователя ему будет скопирован список групп, адрес (кроме улицы), настройки атрибута useraccountcontrol, параметры организации и ряд других атрибутов.

New-ADUser: создать учетную запись пользователя с помощью PowerShell

Выше мы показали, как вручную создать пользователя в домене AD с помощью графической консоли ADUC. Если вы постоянно создаете в домене новых пользователей, то гораздо удобнее автоматизировать этот процесс с помощью PowerShell.

Для создания учетных записей пользователей в AD можно использовать командлет New-ADUser из модуля Active Directory Module for Windows PowerShell.

Полный синтаксис командлета New-ADUser можно получить с помощью команды:

Get-Command New-ADUser –Syntax

New-ADUser - синтаксис

В минимальной версии для создания новой учетной записи пользователя в AD достаточно указать только его имя:
New-ADUser testuser1

Создаем нового пользователя в домене Active Directory

Как вы видите, новая учетная запись пользователя была создана в контейнере Users. По умолчанию этот пользователь отключен. Чтобы использовать эту учетную запись, ее нужно включить (командлет Enable-ADAccount), задать пароль (командлет Set-ADAccountPassword) и настроить другие атрибуты (по необходимости).

Чтобы создать новую учетную запись в определенном контейнере (OU) домена с паролем и сразу включить ее, воспользуйтесь такой командой:

New-ADUser -Name "Test User2" -GivenName "Test" -Surname "User2" -SamAccountName "testuser2" -UserPrincipalName "[email protected]" -Path "OU=Users,OU=Accounts,OU=SPB,DC=winitpro,DC=loc" -AccountPassword(Read-Host -AsSecureString "Input Password") -Enabled $true

Команда предложит сразу указать пароль нового пользователя (пароль передается в защищенном виде).

Примечание. Пароль пользователя должен соответствовать доменным политикам безопасности паролей по длине, сложности и т.д, иначе командлет вернет ошибку: New-ADUser : The password does not meet the length, complexity, or history requirement of the domain. Вы можете использовать готовый скрипт PowerShell для генерации сложного пароля для каждого пользователя.

Вы можете получить информацию о созданном пользователе домена с помощью командлета Get-ADUser:

Get-ADUser testuser2

PowerShell: Массовое создание новых пользователей в AD по CSV файлу

Вы можете использовать PowerShell скрипты для массового заведения пользователей в домене Active Directory. Рассмотрим несколько простой скрипт для создания учетных записей пользователей по списку из CSV файла.

Заполните необходимые параметры пользователей в формате CSV (Excel) файла. Например, мой Excel файл с пользователями состоит из 9 колонок и имеет следующий формат шапки:

FirstName;LastName;Initials;SamAccountName;Phone;Department;JobTitle;Password;OU

Заполните данные пользователей и сохраните Exсel файл с в формате CSV c запятыми, в качестве разделителей. Кодировка файла должна быть обязательно UTF-8 (важно!).

Вы можете обращаться к значениям в ячейках Excel файла напрямую из PowerShell. Для упрощения кода скрипта в этом примере я использую плоский CSV файл.

список пользователей в excel

Теперь вы можете импортировать данный CSV файл (new_ad_users2.csv) и создать в домене новых пользователей. Код готового PowerShell скрипта представлен ниже:

csv файл со списком пользвоателей, которых нужно создать в AD

Примечание.

  • Имя OU, в котором нужно создать пользователя указывается в формате distinguishedName ( "OU=Users,OU=SPB,OU=RU,DC=winitpro,DC=ru" ). Значение нужно взят в двойные кавычки (т.к. строка содежрит запятые);
  • Имя пользователя в домене мы будем заводить на английском языке. Для транслитерации имен и фамилий пользователей с кириллицы в латиницу мы добавили в скрипт отдельную функцию Translit;
  • Если в качестве разделителя CSV файла используется “;”, в командлет Import-Csv нужно добавить аргумент -delimiter ";" . Проверьте, какой разделитель (делиметер) используется в вашей Windows по-умолчанию (команда (Get-Culture).TextInfo.ListSeparator) . Если системный разделитель отличается от разделителя в CSV файле, его нужно указать в параметре –Delimiter ;
  • Скрипт проверяет, существует ли пользователь в домене. Если в домене уже есть такая учетная запись, появляется предупреждение и предлагается ввести уникальный sAMAccountName (вы можете добавить порядковый номер в конце имени учетной записи).

$domain=“@winitpro.loc”
Import-Module activedirectory
Import-Csv "C:\ps\new_ad_users2.csv" | ForEach-Object {
$userSAM=$_.SamAccountName

if (@(Get-ADUser -Filter "SamAccountName -eq '$($_.SamAccountName)'").Count -ne 0) {
Add-Type -AssemblyName Microsoft.VisualBasic
$userSAM = [Microsoft.VisualBasic.Interaction]::InputBox("Пользователь с именем $_.SamAccountName уже существует", 'Укажите новое имя пользователя', $_.SamAccountName)
}
$upn = $userSAM + $domain
$uname = $_.LastName + " " + $_.FirstName + " " + $_.Initials
#переводим в транслит фамилию, имя и отчество
$transLastName=Translit($_.LastName)
$transFirstName=Translit($_.FirstName)
$transInitials=Translit($_.Initials)
$transuname = $transLastName + " " + $transFirstName + " " + $transInitials
New-ADUser -Name $transuname `
-DisplayName $uname `
-GivenName $_.FirstName `
-Surname $_.LastName `
-Initials $_.Initials `
-OfficePhone $_.Phone `
-Department $_.Department `
-Title $_.JobTitle `
-UserPrincipalName $upn `
-SamAccountName $userSAM `
-Path $_.OU `
-AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -force) -Enabled $true
}

Ниже представлен код функции транслитерации (вставить выше кода основного скрипта):
#сама функция транслитерации
function global:Translit {
param([string]$inString)
$Translit = @{
[char]'а' = "a"
[char]'А' = "A"
[char]'б' = "b"
[char]'Б' = "B"
[char]'в' = "v"
[char]'В' = "V"
[char]'г' = "g"
[char]'Г' = "G"
[char]'д' = "d"
[char]'Д' = "D"
[char]'е' = "e"
[char]'Е' = "E"
[char]'ё' = "yo"
[char]'Ё' = "Yo"
[char]'ж' = "zh"
[char]'Ж' = "Zh"
[char]'з' = "z"
[char]'З' = "Z"
[char]'и' = "i"
[char]'И' = "I"
[char]'й' = "j"
[char]'Й' = "J"
[char]'к' = "k"
[char]'К' = "K"
[char]'л' = "l"
[char]'Л' = "L"
[char]'м' = "m"
[char]'М' = "M"
[char]'н' = "n"
[char]'Н' = "N"
[char]'о' = "o"
[char]'О' = "O"
[char]'п' = "p"
[char]'П' = "P"
[char]'р' = "r"
[char]'Р' = "R"
[char]'с' = "s"
[char]'С' = "S"
[char]'т' = "t"
[char]'Т' = "T"
[char]'у' = "u"
[char]'У' = "U"
[char]'ф' = "f"
[char]'Ф' = "F"
[char]'х' = "h"
[char]'Х' = "H"
[char]'ц' = "c"
[char]'Ц' = "C"
[char]'ч' = "ch"
[char]'Ч' = "Ch"
[char]'ш' = "sh"
[char]'Ш' = "Sh"
[char]'щ' = "sch"
[char]'Щ' = "Sch"
[char]'ъ' = ""
[char]'Ъ' = ""
[char]'ы' = "y"
[char]'Ы' = "Y"
[char]'ь' = ""
[char]'Ь' = ""
[char]'э' = "e"
[char]'Э' = "E"
[char]'ю' = "yu"
[char]'Ю' = "Yu"
[char]'я' = "ya"
[char]'Я' = "Ya"
}
$outCHR=""
foreach ($CHR in $inCHR = $inString.ToCharArray())
{
if ($Translit[$CHR] -cne $Null )
{$outCHR += $Translit[$CHR]}
else
{$outCHR += $CHR}
}
Write-Output $outCHR
}

powershell скрипт для массового заведения пользователей из CSV файла в домене Active Directory

Дополнительно вы можете добавить в скрипт функцию логирования создания пользователей в текстовый файл (пример использования лог файлов в скриптах PowerShell).

После выполнения скрипта, откройте консоль ADUC, разверните указанный контейнер и убедитесь, что в AD появились новые учетки пользователей (отследить создание учетных записей в AD можно так: Получение списка учетных записей AD, созданных за последние 24 часа.)

новый пользователь в AD

Вы сразу можете добавить учетные записи в нужные группы AD с помощью командлета Add-AdGroupMember. Для этого нужно немного модифицировать скрипт, добавив в цикле строку:

Add-AdGroupMember -Identity AllowPublicInet -Members $userSAM

Также вы можете установить фотографию пользователя в AD, чтобы она отображалась в Outlook и Lync:

Set-ADUser $userSAM -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:\ps\user1_photo.jpg" -Encoding byte))}


Предыдущая статья Следующая статья


Комментариев: 23 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)