Создать пользователя в домене 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;
    Для создания пользователей в домене ваша учетная запись должна состоять в группе администраторов домена, Account Operators или вы можете делегировать права на создание пользователей другим пользователям/группам.

  3. Укажите имя, фамилию и инициалы пользователя, выберите его userPrincipalName (имя входа пользователя) и sAMAccountName, нажмите Next;
  4. Затем задайте пароль пользователя. На этой форме вы можете дополнительно включить для пользователя следующие опции атрибута UserAccountControl :
    User must change password at next logon — пользователь при первом входе должен будет изменить пароль;
    User cannot change password — пользователь не сможет самостоятельно изменить свой пароль (смена/сброс пароля может быть выполнена только администратором);
    Password never expires — срок действия пароля пользователя никогда не истечет (если эта опция не включена, тогда срок действия пароля пользователя определяется политикой паролей Active Directory );
    Account is disabled — учетная запись пользователя в домене отключена и не может использоваться для входа.
  5. Найдите пользователя в консоли ADUC и откройте его свойства. Здесь вы можете задать дополнительные атрибуты пользователя: номер телефон, адрес, описание, должность, компанию (и т.д.), добавить его в группы AD, и изменить другие атрибуты на вкладке Attribute Editor .

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

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

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

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

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

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

Get-Command New-ADUser –Syntax

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

Как вы видите, новая учетная запись пользователя была создана в контейнере 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=remontka,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 файл.

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

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

$domain=“@remontka.loc”
Import-Module activedirectory
Import-Csv "C:psnew_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 ).

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

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

Add-AdGroupMember -Identity AllowPublicInet -Members $userSAM

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

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

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 недели ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 недели ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 недели ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 недели ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 недели ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 недели ago