Nowy ADUser Twórz użytkowników w AD za pomocą PowerShell

Najprostszym sposobem na utworzenie nowego użytkownika w domenie Active Directory jest użycie graficznej przystawki ADUC (Użytkownicy i komputery usługi Active Directory) w mmc. Ale w przypadku, gdy musisz utworzyć kilka kont jednocześnie w domenie, utworzenie ich w trybie ręcznym może być dość żmudną procedurą dla administratora. W tym artykule przyjrzymy się przykładowi automatyzacji tworzenia kont użytkowników w AD za pomocą polecenia cmdlet programu PowerShell. Nowy aduser.

Treść

  • Użyj polecenia cmdlet New-ADUser, aby utworzyć nowe konto AD.
  • Masowe tworzenie nowych użytkowników w AD ze skryptu CSV PowerShell

Użyj polecenia cmdlet New-ADUser, aby utworzyć nowe konto AD.

Cmdlet Nowy aduser zawarty w module Active Directory dla PowerShell. Aby użyć tego modułu, musisz zainstalować odpowiednią wersję RSAT na komputerze i włączyć moduł Active Directory dla Windows PowerShell.

Aby zaimportować moduł do sesji PowerShell, uruchom polecenie:

Aktywowany katalog Import-Module

Pełną składnię polecenia cmdlet New-ADUser można uzyskać za pomocą polecenia

Get-Command New-ADUser -Syntax

W wersji minimalnej, aby utworzyć nowe konto użytkownika w AD, wystarczy podać jego nazwę.
Nowy ADUser testuser1

Jak widać, nowe konto użytkownika zostało utworzone w kontenerze Użytkownicy i jest wyłączone. Aby korzystać z tego konta, musisz je włączyć (cmdlet Enable-ADAccount), ustawić hasło (cmdlet Set-ADAccountPassword) i / lub inne atrybuty (w razie potrzeby).

Aby utworzyć pełnoprawne konto funkcjonalne w określonym kontenerze (OU) domeny z hasłem i natychmiast je aktywować, użyj tego polecenia.

New-ADUser -Name „Test User2” -GivenName „Test”-Nazwisko „User2” -SamAccountName „testuser2” -UserPrincipalName „[email protected]” -Path „OU = Użytkownicy, OU = Konta, OU = SPB, DC = winitpro, DC = loc "-AccountPassword (Read-Host -AsSecureString" Input Password ") -Enabled $ true

Zespół poprosi cię o natychmiastowe podanie hasła nowego użytkownika (w formie chronionej)

Uwaga. Hasło użytkownika musi być zgodne z zasadami bezpieczeństwa haseł domeny dotyczącymi długości, złożoności itp., W przeciwnym razie polecenie cmdlet zwróci błąd: Nowy ADUser: hasło nie spełnia wymagań dotyczących długości, złożoności ani historii domeny. Możesz użyć gotowego skryptu PowerShell, aby wygenerować unikalne hasło dla każdego użytkownika .

Informacje na temat utworzonego użytkownika domeny można uzyskać za pomocą polecenia cmdlet Get-ADUser:

Get-ADUser testuser2

Masowe tworzenie nowych użytkowników w AD ze skryptu CSV PowerShell

Jeśli chcesz jednocześnie utworzyć dużą liczbę użytkowników w usłudze Active Directory, wygodniej jest zapisać listę użytkowników w formacie Csv (Excel), a następnie uruchom specjalny skrypt PowerShell. W tym pliku musisz wypełnić wszystkie istotne dla Ciebie atrybuty użytkownika.

Na przykład mój plik Excel z użytkownikami składa się z 9 kolumn i ma następujący format nagłówka:

Imię; Nazwisko; Inicjały; SamAccountName; Telefon; Dział; JobTitle; Hasło; OU

Uzupełnij dane użytkownika i zapisz plik Excel w formacie CSV przecinkami, jako separatory. Kodowanie pliku musi być UTF-8 (ważne!). Ponadto od w wartościach kolumny OU występują przecinki, musisz uciec przed nimi przez podwójne cudzysłowy.

Teraz możesz zaimportować ten plik CSV (new_ad_users2.csv) i utworzyć nowych użytkowników w domenie. Kod gotowego skryptu PowerShell przedstawiono poniżej:

Uwaga.

  • Rozpoczniemy nazwę użytkownika w domenie w języku angielskim, dlatego w celu transliteracji nazw użytkowników z cyrylicy na łacinę dodamy osobną funkcję do skryptu Translit.
  • Jeśli użyjesz „;”, Dodaj -delimiter„; ”do polecenia cmdlet Import-Csv

Aktywowany katalog Import-Module
Import-Csv „C: \ ps \ new_ad_users2.csv” | ForEach-Object
$ upn = $ _. SamAccountName + „@ contoso.loc”
$ uname = $ _. LastName + "" + $ _. FirstName + "" + $ _. Inicjały
# przetłumacz nazwisko, imię i patronimikę na transliterację
$ transLastName = Translit ($ _. LastName)
$ transFirstName = Translit ($ _. FirstName)
$ transInitials = Translit ($ _. Inicjały)
$ transuname = $ transLastName + "" + $ transFirstName + "" + $ transInitials
New-ADUser -Name $ transuname '
-DisplayName $ uname ”
-GivenName $ _. FirstName '
-Nazwisko $ _. LastName '
-Inicjały $ _. Inicjały ”
-OfficePhone $ _. Telefon ”
-Department $ _. Department '
-Tytuł $ _. JobTitle ”
-UserPrincipalName $ upn '
-SamAccountName $ _. SamAccountName '
-Ścieżka $ _. OU ”
-AccountPassword (ConvertTo-SecureString $ _. Hasło -AsPlainText -force) -Enabled $ true

# sama funkcja transliteracji
funkcja globalna: Translit
param ([ciąg] $ 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] ”i„ = „i”
[char] „And” = „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 w $ inCHR = $ inString.ToCharArray ())

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

Zapis-wyjście $ outCHR

Po uruchomieniu skryptu otwórz konsolę ADUC, rozwiń określony kontener i upewnij się, że nowe konta użytkowników pojawiają się w AD (możesz śledzić tworzenie kont użytkowników w AD w następujący sposób: Uzyskaj listę kont AD utworzonych w ciągu ostatnich 24 godzin).

Utworzone konta można natychmiast dodać do określonej grupy AD za pomocą polecenia cmdlet Add-AdGroupMember. Aby to zrobić, należy nieco zmodyfikować skrypt, dodając wiersz w pętli:

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

Lub natychmiast ustaw zdjęcie użytkownika w AD, tak aby pojawiło się w Outlooku i Lync:

Set-ADUser $ _. SamAccountName -Replace @ thumbnailPhoto = ([bajt []] (Get-Content „C: \ ps \ user1_photo.jpg” - bajt kodowania))