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))