Powershell - Teste credenciais do usuário no AD, com redefinição de senha

8

Posso usar com êxito o Powershell para saber se um usuário se autentica no Active Directory:

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

Test-ADAuthentication "test" "Password1"

No entanto, para a minha vida, não consigo descobrir como:

  1. Verifique se a senha precisa ser redefinida, enquanto
  2. A verificação das credenciais enviadas funcionou na última senha.

Como alguém poderia fazer isso?

dthree
fonte
um pouco melhor solução para o mesmo problema aqui: stackoverflow.com/questions/7663219/...
Nick Kavadias

Respostas:

8

As credenciais podem ser testadas executando um processo. Um exemplo abaixo,

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

Ou simplesmente:

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

Você será solicitado a inserir uma senha. Se você precisar ler a senha de uma sequência (prática recomendada), precisará inicializar o objeto de credencial antecipadamente. Mais detalhes sobre esse método podem ser encontrados na ajuda.

Get-Help Get-Credential
MFT
fonte
Você pode achar que esse processo de início não funcionará de qualquer maneira, se o usuário não tiver direitos de comunicação remota ... Encontrei as respostas aqui úteis. serverfault.com/questions/276098/…
andrew pate