New-ADUser Buat pengguna dalam AD menggunakan PowerShell

Cara termudah untuk membuat pengguna baru dalam domain Direktori Aktif adalah dengan menggunakan ADUC (Pengguna Direktori Aktif dan Komputer) snap-in mmc grafis. Tetapi jika Anda perlu membuat beberapa akun dalam satu domain sekaligus, membuatnya dalam mode manual bisa menjadi prosedur yang cukup membosankan bagi seorang administrator. Dalam artikel ini, kita akan melihat contoh mengotomatisasi pembuatan akun pengguna dalam AD menggunakan cmdlet PowerShell. Pengguna baru.

Konten:

  • Gunakan cmdlet New-ADUser untuk membuat akun AD baru.
  • Pembuatan massal pengguna baru dalam AD dari skrip CSV PowerShell

Gunakan cmdlet New-ADUser untuk membuat akun AD baru.

Cmdlet Pengguna baru termasuk dalam modul Direktori aktif untuk PowerShell. Untuk menggunakan modul ini, Anda perlu menginstal versi RSAT yang sesuai di komputer dan mengaktifkan komponen Active Directory Module untuk Windows PowerShell.

Untuk mengimpor modul ke sesi PowerShell, jalankan perintah:

Direktori aktif Modul Impor

Sintaks lengkap untuk cmdlet New-ADUser dapat diperoleh dengan menggunakan perintah

Get-Command New-ADUser -Syntax

Dalam versi minimum, untuk membuat akun pengguna baru di AD, Anda hanya perlu menentukan namanya.
Pengguna-ADUser baru1

Seperti yang Anda lihat, akun pengguna baru telah dibuat di wadah Pengguna dan dinonaktifkan. Untuk menggunakan akun ini, Anda harus mengaktifkannya (Enable-ADAccount cmdlet), mengatur kata sandi (Set-ADAccountPassword cmdlet) dan / atau atribut lainnya (jika perlu).

Untuk membuat akun fungsional lengkap dalam wadah khusus (OU) domain dengan kata sandi dan segera mengaktifkannya, gunakan perintah ini.

New-ADUser -Name "Test User2" -GivenName "Test" -Nama "User2" -SamAccountName "testuser2" -UserPrincipalName "[email protected]" -Path "OU = Pengguna, OU = Akun, OU = SPB, DC = winitpro, DC = loc "-AccountPassword (Read-Host -AsSecureString" Input Password ") -Diaktifkan $ true

Tim akan meminta Anda untuk segera menentukan kata sandi untuk pengguna baru (dalam bentuk yang dilindungi)

Catatan. Kata sandi pengguna harus mematuhi kebijakan keamanan kata sandi domain untuk panjang, kompleksitas, dll., Jika cmdlet akan mengembalikan kesalahan: Pengguna-ADUser Baru: Kata sandi tidak memenuhi persyaratan panjang, kompleksitas, atau riwayat domain. Anda dapat menggunakan skrip PowerShell yang sudah jadi untuk menghasilkan kata sandi unik untuk setiap pengguna .

Informasi tentang pengguna domain yang dibuat dapat diperoleh menggunakan cmdlet Get-ADUser:

Get-ADUser testuser2

Pembuatan massal pengguna baru dalam AD dari skrip CSV PowerShell

Jika dalam direktori aktif Anda perlu membuat sejumlah besar pengguna sekaligus, akan lebih mudah untuk menyimpan daftar pengguna dalam format Csv (Excel) file, dan kemudian jalankan skrip PowerShell khusus. Dalam file ini Anda harus mengisi semua atribut pengguna yang penting bagi Anda.

Misalnya, file Excel saya dengan pengguna terdiri dari 9 kolom dan memiliki format tajuk berikut:

FirstName; LastName; Inisial; SamAccountName; Telepon; Departemen; JobTitle; Kata Sandi; OU

Isi data pengguna dan simpan file Excel dengan format CSV dengan koma, sebagai pembatas. Pengkodean file harus UTF-8 (penting!). Selain itu, sejak ada koma dalam nilai kolom OU, Anda harus menghindarinya dengan tanda kutip ganda.

Sekarang Anda dapat mengimpor file CSV ini (new_ad_users2.csv) dan membuat pengguna baru di domain. Kode untuk skrip PowerShell yang sudah selesai disajikan di bawah ini:

Catatan.

  • Kami akan memulai nama pengguna dalam domain dalam bahasa Inggris, oleh karena itu, untuk mentransliterasikan nama pengguna dari Cyrillic ke Latin, kami akan menambahkan fungsi terpisah ke skrip Translit.
  • Jika Anda menggunakan ";", Tambahkan -delimiter"; "ke cmdlet Impor-Csv

Direktori aktif Modul Impor
Impor-Csv "C: \ ps \ new_ad_users2.csv" | ForEach-Object
$ upn = $ _. SamAccountName + “@ contoso.loc”
$ uname = $ _. LastName + "" + $ _. FirstName + "" + $ _. Inisial
# menerjemahkan nama belakang, nama depan dan patronim menjadi transliterasi
$ transLastName = Translit ($ _. LastName)
$ transFirstName = Translit ($ _. FirstName)
$ transInitials = Translit ($ _. Initials)
$ transuname = $ transLastName + "" + $ transFirstName + "" + $ transInitials
New-ADUser -Name $ transuname '
-DisplayName $ uname '
-Diberi Nama $ _. Nama depan '
-Nama keluarga $ _. Nama belakang '
-Inisial $ _. Inisial '
-OfficePhone $ _. Telepon '
-Departemen $ _. Departemen '
-Judul $ _. JobTitle '
-UserPrincipalName $ upn '
-SamAccountName $ _. SamAccountName '
-Path $ _. OU '
-AccountPassword (ConvertTo-SecureString $ _. Kata sandi -AsPlainText -force) -Diaktifkan $ true

# fungsi transliterasi itu sendiri
fungsi global: 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] 'ё' = "yo"
[char] 'yo' = "yo"
[char] 'w' = "zh"
[char] 'J' = "Zh"
[char] 'z' = "z"
[char] 'Z' = "Z"
[char] 'dan' = "i"
[char] 'Dan' = "Saya"
[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 dalam $ inCHR = $ inString.ToCharArray ())

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

Write-Output $ outCHR

Setelah menjalankan skrip, buka konsol ADUC, perluas wadah yang ditentukan dan pastikan bahwa akun pengguna baru muncul dalam AD (Anda dapat melacak pembuatan akun pengguna di AD seperti ini: Dapatkan daftar akun AD yang dibuat dalam 24 jam terakhir.)

Akun yang dibuat dapat segera ditambahkan ke grup AD tertentu menggunakan cmdlet Add-AdGroupMember. Untuk melakukan ini, Anda perlu sedikit memodifikasi skrip dengan menambahkan baris dalam loop:

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

Atau segera atur foto pengguna dalam AD sehingga muncul di Outlook dan Lync:

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