Создать пользователя в домене 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.
- Запустите консоль Active Directory Users and Computers, выполнив команду
dsa.msc
; - Выберите контейнер (Organizational Unit, OU) Active Directory, в котором вы хотите создать нового пользователя. Щелкните по нему правой кнопкой и выберите New -> User;
Для создания пользователей в домене ваша учетная запись должна состоять в группе администраторов домена, Account Operators или вы можете делегировать права на создание пользователей другим пользователям/группам.
- Укажите имя, фамилию и инициалы пользователя, выберите его userPrincipalName (имя входа пользователя) и sAMAccountName, нажмите Next;
- Затем задайте пароль пользователя. На этой форме вы можете дополнительно включить для пользователя следующие опции атрибута UserAccountControl:
User must change password at next logon — пользователь при первом входе должен будет изменить пароль;
User cannot change password — пользователь не сможет самостоятельно изменить свой пароль (смена/сброс пароля может быть выполнена только администратором);
Password never expires — срок действия пароля пользователя никогда не истечет (если эта опция не включена, тогда срок действия пароля пользователя определяется политикой паролей Active Directory);
Account is disabled — учетная запись пользователя в домене отключена и не может использоваться для входа. - Найдите пользователя в консоли 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=winitpro,DC=loc" -AccountPassword(Read-Host -AsSecureString "Input Password") -Enabled $true
Команда предложит сразу указать пароль нового пользователя (пароль передается в защищенном виде).
Вы можете получить информацию о созданном пользователе домена с помощью командлета 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 (важно!).
Теперь вы можете импортировать данный CSV файл (new_ad_users2.csv) и создать в домене новых пользователей. Код готового PowerShell скрипта представлен ниже:
- Имя 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: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
}
После выполнения скрипта, откройте консоль 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))}
PowerShell
Создать пользователя в домене Active Directory с помощью PowerShell и ADUC