Powershell - Test user credentials in AD, with password reset
I can successfully use Powershell to tell if a user authenticates in Active Directory:
Function Test-ADAuthentication {
param($username,$password)
(new-object directoryservices.directoryentry "",$username,$password).psbase.name -ne $null
}
Test-ADAuthentication "test" "Password1"
However, I cannot for the life of me figure out how to:
- Check if the password needs to be reset, while
- Verifying the credentials sent did work on their last password.
How could one go about this?
Solution 1:
Credentials can be tested by running a process. An example below,
Start-Process -FilePath cmd.exe /c -Credential (Get-Credential -UserName $username -Message 'Test Credential')
Or simply:
Start-Process -FilePath cmd.exe /c -Credential (Get-Credential)
You will be presented with a prompt to enter a password. If you need read the password from a string (bad practice), you need to initialize the credential object beforehand. More details on that method can be found in the help.
Get-Help Get-Credential