New-ADUser Създайте потребители в AD, използвайки PowerShell

Най-лесният начин да създадете нов потребител в домейна на Active Directory е да използвате графичния модул ADC (Active Directory потребители и компютри) с графичен mmc прихващане. Но в случай, че трябва да създадете няколко акаунта в домейн наведнъж, създаването им в ръчен режим може да бъде доста досадна процедура за администратор. В тази статия ще разгледаме пример за автоматизиране на създаването на потребителски акаунт в AD с помощта на командлета PowerShell. Нова ADUser.

Съдържание:

  • Използвайте командлета New-ADUser, за да създадете нов акаунт за AD.
  • Масово създаване на нови потребители в AD от CSV PowerShell скрипт

Използвайте командлета New-ADUser, за да създадете нов акаунт за AD.

кратката команда Нова ADUser включени в модула Active Directory за PowerShell. За да използвате този модул, трябва да инсталирате съответната версия на RSAT на компютъра и да активирате модула Active Directory за компонента Windows PowerShell.

За да импортирате модула в PowerShell сесия, изпълнете командата:

Импорт-модул activedirectory

Пълният синтаксис за командлета New-ADUser може да бъде получен чрез командата

Get-Command New-ADUser -Syntax

В минималната версия, за да създадете нов потребителски акаунт в AD, трябва само да посочите името му.
Нов ADUser testuser1

Както можете да видите, нов потребителски акаунт е създаден в контейнера Потребители и е деактивиран. За да използвате този акаунт, трябва да го активирате (командлет на Enable-ADAccount), да зададете парола (командлет Set-ADAccountPassword) и / или други атрибути (ако е необходимо).

За да създадете пълноценен функционален акаунт в конкретен контейнер (OU) на домейн с парола и незабавно да го активирате, използвайте тази команда.

New-ADUser -Name "Test User2" -GivenName "Test" -Имено "User2" -SamAccountName "testuser2" -UserPrincipalName "[email protected]" -Path "OU = Потребители, OU = Акаунти, OU = SPB, DC = winitpro, DC = loc "-AccountPassword (Read-Host -AsSecureString" Въведена парола ") -Enabled $ true

Екипът ще ви подкани незабавно да посочите паролата за новия потребител (в защитена форма)

забележка. Потребителската парола трябва да съответства на правилата за сигурност на парола за домейн за дължина, сложност и т.н., в противен случай командлетът ще върне грешка: New-ADUser: Паролата не отговаря на изискването за дължина, сложност или история на домейна. Можете да използвате готов скрипт PowerShell, за да генерирате уникална парола за всеки потребител .

Информация за създадения потребител на домейна може да бъде получена с командлета Get-ADUser:

Get-ADUser testuser2

Масово създаване на нови потребители в AD от CSV PowerShell скрипт

В случай, че в Active Directory трябва да създадете голям брой потребители наведнъж, е по-удобно да запазите списъка с потребители във формат CSV (Excel) файл и след това стартирайте специалния скрипт PowerShell. В този файл трябва да попълните всички атрибути на потребителя, които са важни за вас.

Например моят Excel файл с потребители се състои от 9 колони и има следния формат на заглавката:

FirstName; LastName; Инициали; SamAccountName; Телефон; Отдел; JobTitle; Парола; OU

Попълнете потребителските данни и запишете Excel файла с CSV формат със запетаи като разделители. Кодирането на файла трябва да бъде UTF-8 (важно!). В допълнение, тъй като в стойностите на колоната OU има запетаи, трябва да ги избягате с двойни кавички.

Сега можете да импортирате този CSV файл (new_ad_users2.csv) и да създадете нови потребители в домейна. Кодът за готовия скрипт на PowerShell е представен по-долу:

забележка.

  • Ще започнем потребителското име в домейна на английски, следователно, за да транслитерираме имената на потребителите от кирилица на латиница, ще добавим отделна функция към скрипта транслитерирано на.
  • Ако използвате „;", Добавете -delimiter"; "към командния файл Import-Csv

Импорт-модул activedirectory
Import-Csv "C: \ ps \ new_ad_users2.csv" | ForEach-Object
$ upn = $ _. SamAccountName + "@ contoso.loc"
$ uname = $ _. LastName + "" + $ _. FirstName + "" + $ _. Инициали
# преведете фамилията, фамилията и отрочето в транслитерация
$ transLastName = Translit ($ _. LastName)
$ transFirstName = Translit ($ _. Първо име)
$ transInitials = Translit ($ _. Инициали)
$ transuname = $ transLastName + "" + $ transFirstName + "" + $ transInitials
New-ADUser -Name $ transuname '
-DisplayName $ uname '
-GivenName $ _. FirstName '
-Фамилия $ _. LastName '
-Инициали $ _. Инициали '
-OfficePhone $ _. Телефон '
-Отдел $ _. Отдел '
-Заглавие $ _. JobTitle '
-UserPrincipalName $ upn '
-SamAccountName $ _. SamAccountName '
-Път $ _. OU '
-AccountPassword (ConvertTo-SecureString $ _. Парола -AsPlainText -force) -Enabled $ true

# самата функция за транслитерация
функция глобална: Translit
param ([string] $ inString)
$ Translit = @
[char] 'a' = "a"
[char] 'A' = "A"
[char] 'b' = "b"
[char] 'B' = "B"
[char] 'in' = "v"
[char] 'B' = "V"
[char] 'g' = "g"
[char] 'G' = "G"
[char] 'd' = "d"
[char] 'D' = "D"
[char] 'e' = "e"
[char] 'E' = "E"
[char] 'ё' = "йо"
[char] 'yo' = "йо"
[char] 'w' = "zh"
[char] 'J' = "Zh"
[char] 'z' = "z"
[char] 'Z' = "Z"
[char] 'и' = "i"
[char] 'И' = "Аз"
[char] 'th' = "j"
[char] 'Y' = "J"
[char] 'k' = "k"
[char] 'K' = "K"
[char] 'l' = "l"
[char] 'L' = "L"
[char] 'm' = "m"
[char] 'M' = "M"
[char] 'n' = "n"
[char] 'H' = "N"
[char] 'o' = "o"
[char] 'O' = "О"
[char] 'n' = "p"
[char] 'P' = "P"
[char] 'p' = "r"
[char] 'P' = "R"
[char] 'c' = "s"
[char] 'C' = "S"
[char] 't' = "t"
[char] 'T' = "T"
[char] 'y' = "u"
[char] 'U' = "U"
[char] 'f' = "f"
[char] 'f' = "f"
[char] 'x' = "h"
[char] 'X' = "H"
[char] 'q' = "c"
[char] 'C' = "C"
[char] 'h' = "ch"
[char] 'H' = "Ch"
[char] 'w' = "ш"
[char] 'W' = "Sh"
[char] 'u' = "sch"
[char] 'Щ' = "Sch"
[char] 'ъ' = ""
[char] 'b' = ""
[char] 's' = "y"
[char] 'S' = "Y"
[char] 'b' = ""
[char] 'b' = ""
[char] 'e' = "e"
[char] 'E' = "E"
[char] 'yu' = "ю"
[char] 'Yu' = "Ю"
[char] 'i' = "ya"
[char] 'I' = "Я"

$ outCHR = ""
foreach ($ CHR в $ inCHR = $ inString.ToCharArray ())

if ($ Translit [$ CHR] -cne $ Null)
$ outCHR + = $ Translit [$ CHR]
още
$ outCHR + = $ CHR

Изписване-изход $ outCHR

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

Създадените акаунти могат да бъдат незабавно добавени към определена група AD с помощта на командлета Add-AdGroupMember. За да направите това, трябва леко да промените скрипта, като добавите реда в цикъла:

Add-AdGroupMember -Identity AllowPublicInet -Members $ _. SamAccountName

Или веднага задайте снимката на потребителя в AD, така че да се показва в Outlook и Lync:

Set-ADUser $ _. SamAccountName -Replace @ thumbnailPhoto = ([байт []] (Get-Content "C: \ ps \ user1_photo.jpg" -Encoding byte))