New-ADUser Vytváření uživatelů v AD pomocí PowerShell

Nejjednodušší způsob, jak vytvořit nového uživatele v doméně služby Active Directory, je použití grafického modulu snap-in MMC ADUC (uživatelé a počítače služby Active Directory). Ale v případě, že potřebujete vytvořit několik účtů v doméně najednou, může být jejich vytvoření v manuálním režimu pro správce docela zdlouhavý postup. V tomto článku se podíváme na příklad automatizace vytváření uživatelských účtů v AD pomocí cmdlet PowerShell. Nový uživatel.

Obsah:

  • Pomocí cmdlet New-ADUser vytvořte nový účet AD.
  • Hromadná tvorba nových uživatelů v AD ze skriptu CSV PowerShell

Pomocí cmdlet New-ADUser vytvořte nový účet AD.

Cmdlet Nový uživatel součástí modulu Active Directory pro PowerShell. Chcete-li použít tento modul, musíte do počítače nainstalovat příslušnou verzi RSAT a povolit komponentu Active Directory Module pro Windows PowerShell.

Chcete-li modul importovat do relace PowerShell, spusťte příkaz:

Adresář importního modulu

Úplnou syntaxi rutiny New-ADUser lze získat příkazem

Get-Command New-ADUser - Syntaxe

V minimální verzi, chcete-li vytvořit nový uživatelský účet v AD, stačí zadat jeho jméno.
New-ADUser testuser1

Jak vidíte, nový uživatelský účet byl vytvořen v kontejneru Users a je zakázán. Chcete-li použít tento účet, musíte jej povolit (Enable-ADAccount cmdlet), nastavit heslo (Set-ADAccountPassword cmdlet) a / nebo další atributy (pokud je to nutné).

Chcete-li vytvořit plnohodnotný funkční účet v konkrétním kontejneru (OU) domény s heslem a okamžitě jej aktivovat, použijte tento příkaz.

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

Tým vás vyzve k okamžitému zadání hesla pro nového uživatele (v chráněné podobě)

Poznámka:. Heslo uživatele musí být v souladu s bezpečnostními zásadami hesla domény pro délku, složitost atd., Jinak cmdlet vrátí chybu: New-ADUser: Heslo nesplňuje požadavky na délku, složitost nebo historii domény. K vytvoření jedinečného hesla pro každého uživatele můžete použít hotový skript PowerShell .

Informace o vytvořeném uživateli domény lze získat pomocí rutiny Get-ADUser:

Get-ADUser testuser2

Hromadná tvorba nových uživatelů v AD ze skriptu CSV PowerShell

Pokud potřebujete vytvořit velký počet uživatelů ve službě Active Directory najednou, je výhodnější uložit seznam uživatelů ve formátu Csv (Excel) a poté spusťte speciální skript PowerShell. V tomto souboru musíte vyplnit všechny uživatelské atributy, které jsou pro vás významné.

Například můj soubor Excel s uživateli sestává z 9 sloupců a má následující formát záhlaví:

Jméno, Příjmení; Iniciály; SamAccountName; Telefon; Oddělení; JobTitle; Heslo; OU

Vyplňte uživatelská data a uložte soubor Excel ve formátu CSV s čárkami jako oddělovače. Kódování souboru musí být UTF-8 (důležité!). Navíc od té doby v hodnotách ve sloupci OU jsou čárky, musíte jim uniknout uvozovkami.

Nyní můžete tento soubor CSV importovat (new_ad_users2.csv) a vytvořit nové uživatele v doméně. Kód pro hotový skript PowerShell je uveden níže:

Poznámka:.

  • Začneme uživatelské jméno v doméně v angličtině, proto pro přepis jmen uživatelů z azbuky do latiny přidáme do skriptu samostatnou funkci Translit.
  • Pokud použijete „;”, Přidejte -delimiter“; ”do rutiny cmdlet Import-Csv

Adresář importního modulu
Import-Csv "C: \ ps \ new_ad_users2.csv" | ForEach-Object
$ upn = $ _. SamAccountName + “@ contoso.loc”
$ uname = $ _. Příjmení + "" + $ _. Jméno + "" + $ _. Iniciály
# přeložit příjmení, křestní jméno a patronymii do přepisu
$ transLastName = Translit ($ _. LastName)
$ transFirstName = Translit ($ _. FirstName)
$ transInitials = Translit ($ _. Initials)
$ transuname = $ transLastName + "" + $ transFirstName + "" + $ transInitials
New-ADUser - jméno $ transuname '
-DisplayName $ uname '
-GivenName $ _. FirstName '
-Příjmení $ _. Příjmení '
-Iniciály $ _. Iniciály '
-OfficePhone $ _. Telefon '
-Oddělení $ _. Oddělení '
-Název $ _. JobTitle '
-UserPrincipalName $ upn '
-SamAccountName $ _. SamAccountName '
-Cesta $ _. OU '
-AccountPassword (ConvertTo-SecureString $ _. Password -AsPlainText -force) -Povoleno $ true

# funkce přepisu sama o sobě
globální funkce: Translit
param ([řetězec] $ 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] 'ё' = "yo"
[char] 'yo' = "yo"
[char] 'w' = "zh"
[char] 'J' = "Zh"
[char] 'z' = "z"
[char] 'Z' = "Z"
[char] 'a' = "i"
[char] 'A' = "I"
[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' = "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' = "sh"
[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' = "yu"
[char] 'Yu' = "Yu"
[char] 'i' = "ya"
[char] 'I' = "Ya"

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

if ($ Translit [$ CHR] -cne $ Null)
$ outCHR + = $ Translit [$ CHR]
jinde
$ outCHR + = $ CHR

Zápis-výstup $ outCHR

Po spuštění skriptu otevřete konzolu ADUC, rozbalte určený kontejner a ujistěte se, že se v AD objeví nové uživatelské účty (můžete sledovat vytváření uživatelských účtů v AD takto: Získejte seznam AD účtů vytvořených za posledních 24 hodin.)

Vytvořené účty lze okamžitě přidat do konkrétní skupiny AD pomocí cmdlet Add-AdGroupMember. Chcete-li to provést, musíte skript mírně upravit přidáním řádku do smyčky:

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

Nebo okamžitě nastavte fotografii uživatele v AD tak, aby se objevila v aplikaci Outlook a Lync:

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