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