Ubah kata sandi pengguna dalam AD dari PowerShell

Pada artikel ini, kita akan melihat cara mengubah (mengatur ulang) kata sandi satu atau beberapa pengguna Active Directory dari baris perintah PowerShell menggunakan cmdlet Set-ADAccountPassword.

Sebagian besar administrator digunakan untuk mengubah (mengatur ulang) kata sandi pengguna dalam AD melalui snap-in grafis dsa.msc (Pengguna & Komputer Direktori Aktif - ADUC). Untuk melakukan ini, cari akun pengguna dalam AD, klik kanan padanya dan pilih "Reset kata sandi". Ini adalah cara yang sederhana dan mudah..

Tetapi Anda tidak akan dapat menggunakan konsol ADUC ketika Anda perlu mengatur ulang kata sandi sekaligus untuk banyak pengguna, gunakan prosedur pengaturan ulang kata sandi sebagai salah satu tindakan skrip. Dalam hal ini, Anda dapat mengatur ulang kata sandi dalam AD dari prompt perintah PowerShell..

Konten:

  • Cara mengatur ulang kata sandi pengguna dalam AD?
  • Ubah kata sandi beberapa pengguna dalam AD

Cara mengatur ulang kata sandi pengguna dalam AD?

Untuk mengatur ulang kata sandi pengguna dalam AD, gunakan cmdlet Set-ADAccountPassword, termasuk dalam modul Active Directory untuk Windows PowerShell (dalam versi desktop Windows itu adalah bagian dari RSAT, dan dalam edisi server itu diinstal sebagai komponen terpisah dari AD DS Snap-Ins dan Command-Line Tools). Sebelum menggunakan modul, Anda harus mengimpornya ke sesi PowerShell:

Impor-modul ActiveDirectory

Untuk mengatur ulang kata sandi Anda, akun Anda harus memiliki hak yang sesuai. Secara alami, pengguna AD biasa tidak dapat mengatur ulang kata sandi akun lain secara default, agar fitur ini muncul, pengguna (grup pengguna) harus didelegasikan hak untuk mengatur ulang kata sandi pada wadah AD, atau menambahkannya ke grup domain Operator Akun.

Untuk memverifikasi bahwa akun Anda memiliki hak untuk mereset kata sandi pengguna tertentu, buka propertinya, buka tab Keamanan -> Lanjutan -> Akses Efektif -> tentukan nama akun Anda -> pastikan bahwa Anda telah mengatur ulang izin Kata Sandi.

Untuk mengatur ulang kata sandi untuk pengguna dengan akun dakimov dan menetapkan kata sandi baru SuperStr0n @ p1, jalankan perintah:

Set-ADAccountPassword dakimov -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "SuperStr0n @ p1" -Paksa -Verbose) -PassThru

Untuk secara otomatis menghasilkan kata sandi yang kompleks untuk pengguna, Anda dapat menggunakan metode GeneratePassword yang dijelaskan dalam artikel "Menghasilkan kata sandi acak menggunakan PowerShell".

Secara default, cmdlet mengembalikan objek dan tidak menampilkan apa pun di konsol. Untuk menampilkan informasi tentang objek pengguna dalam AD, kami menggunakan parameter -Passthru.

Sebagai nama pengguna, Anda dapat menentukan sAMAccountName (seperti dalam kasus kami), objectGUID, SID pengguna, atau DN-nya (Nama Terhormat, misalnya CN = Akimov, Pengguna OU, Pengguna DC, winitpro, DC = ru).

Jika Anda tidak menentukan parameter saat mengubah kata sandi pengguna -Setel ulang, Anda harus menentukan kata sandi akun lama dan baru.

Catatan. Jika terjadi kesalahan saat mengatur ulang kata sandi menggunakan cmdlet Set-ADAccountPassword:

Set-ADAccountPassword: Kata sandi tidak memenuhi persyaratan panjang, kompleksitas, atau riwayat domain.

Ini berarti bahwa kompleksitas tertentu, panjang, dll persyaratan yang ditentukan dalam kebijakan kata sandi domain atau kebijakan kata sandi granular yang berlaku untuk akun berlaku untuk kata sandi yang ditentukan..

Jika Anda telah mengaktifkan riwayat perintah PowerShell dan Anda tidak ingin kata sandi ditampilkan dalam teks yang jelas di konsol PoSh, Anda harus mengonversi kata sandi ke garis aman seperti saat membuat pengguna (lebih lanjut tentang perlindungan kata sandi dalam skrip PowerShell di sini):

$ NewPasswd = Baca-Host "Masukkan kata sandi pengguna baru" -AsSecureString

Sekarang atur ulang kata sandi:

Set-ADAccountPassword dakimov -Reset -NewPassword $ NewPasswd -PassThru

Saat mengatur ulang kata sandi, Anda dapat memaksakan kunci catatan akademik meskipun terkunci (untuk cara menemukan dari komputer mana akun dikunci, lihat artikel Menemukan sumber kunci pengguna di Active Directory):

Unlock-ADAccount -Identity dakimov

Agar pengguna dapat mengubah kata sandi ini dengan kata sandi baru saat berikutnya ia masuk ke domain, jalankan perintah:

Set-ADUser -Identity dakimov -ChangePasswordAtLogon $ true

Anda dapat menggabungkan perintah perubahan kata sandi dan persyaratan untuk mengubah kata sandi (atribut userAccountControl) dalam satu baris:

Set-ADAccountPassword dakimov -NewPassword $ NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $ True

Menggunakan cmdlet Get-ADUser, Anda dapat memverifikasi bahwa kata sandi telah berhasil direset dengan menampilkan waktu akun terakhir diubah:

Dapatkan-ADUser dakimov -Properti * | pilih nama, lewati *

Ketika kata sandi diatur ulang, acara EventID 4724 masuk ke pengontrol domain (DC). Acara ini membantu mengidentifikasi akun yang melakukan pengaturan ulang kata sandi pengguna..

Ubah kata sandi beberapa pengguna dalam AD

Di atas, kami menunjukkan cara mengatur ulang kata sandi satu pengguna di AD dari PowerShell. Sekarang pertimbangkan skenario lain - ketika Anda perlu mengubah kata sandi beberapa pengguna sekaligus.

Kasus paling sederhana adalah Anda perlu mengatur ulang kata sandi semua pengguna dengan properti akun tertentu. Misalnya, Anda harus memaksa semua karyawan departemen Penjualan untuk mereset kata sandi yang sama dan memaksa mereka untuk diubah saat mereka masuk berikutnya:

get-aduser -filter "department -eq 'Sales Dept' -dan diaktifkan -eq 'Benar'" | Set-ADAccountPassword -NewPassword $ NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $ True

Pertimbangkan kasus lain. Misalkan Anda memiliki file CSV / Excel yang berisi daftar pengguna yang perlu mengatur ulang kata sandi dan kata sandi unik untuk setiap pengguna. Format file Users.csv:

sAMAccountName; NewPassword
aivanov; PaSSde0r1
bpetrov; Baru $ isde01
ssidorov; k @ nndj! 223

Dengan menggunakan skrip PowerShell berikut, Anda dapat mengatur ulang kata sandi untuk setiap akun dalam file:

Import-Csv users.csv -Delimiter ";" | Foreach
$ NewPass = ConvertTo-SecureString -AsPlainText $ _. NewPassword -Force
Set-ADAccountPassword -Identity $ _. SAMAccountName -NewPassword $ NewPass -Reset -PassThru | Set-ADUser -ChangePasswordAtLogon $ false

Setelah kode ini dieksekusi, kata sandi unik baru akan ditetapkan untuk semua pengguna dalam file..