Powershell - Uji kredensial pengguna dalam AD, dengan pengaturan ulang kata sandi

8

Saya dapat berhasil menggunakan Powershell untuk mengetahui apakah pengguna mengautentikasi di Active Directory:

Function Test-ADAuthentication {
    param($username,$password)
    (new-object directoryservices.directoryentry "",$username,$password).psbase.name -ne $null
}

Test-ADAuthentication "test" "Password1"

Namun, saya tidak bisa seumur hidup saya mencari cara:

  1. Periksa apakah kata sandi perlu diatur ulang, sementara
  2. Memverifikasi kredensial yang dikirim berhasil dengan kata sandi terakhir mereka.

Bagaimana orang bisa melakukan ini?

dthree
sumber
solusi yang agak lebih baik untuk masalah yang sama di sini: stackoverflow.com/questions/7663219/…
Nick Kavadias

Jawaban:

8

Kredensial dapat diuji dengan menjalankan suatu proses. Contoh di bawah ini,

Start-Process -FilePath cmd.exe /c -Credential (Get-Credential -UserName $username -Message 'Test Credential')

Atau sederhananya:

Start-Process -FilePath cmd.exe /c -Credential (Get-Credential)

Anda akan diberikan prompt untuk memasukkan kata sandi. Jika Anda perlu membaca kata sandi dari string (praktik buruk), Anda harus menginisialisasi objek kredensial sebelumnya. Rincian lebih lanjut tentang metode itu dapat ditemukan dalam bantuan.

Get-Help Get-Credential
MFT
sumber
Anda mungkin menemukan bahwa proses mulai ini tidak akan berhasil jika pengguna tidak memiliki hak remoting .... Saya menemukan jawabannya di sini bermanfaat. serverfault.com/questions/276098/…
andrew pate