Concorde com os comentários acima.
Você pode descartar as referências a ADSI (Interface de Scripts do Active Directory), pois essa é a maneira "antiga" de fazer as coisas; o módulo PS do Active Directory foi projetado para substituí-lo.
Portanto, na sua instância, primeiro você precisa confirmar se o objeto do usuário existe. Você pode fazer isso usando o cmdlet Get-ADUser , com base nos critérios de pesquisa escolhidos. Agora, neste estágio, sugiro tornar a pesquisa bastante prescritiva, ou seja, você só retorna um objeto de usuário, por exemplo:
try {
$objUser = Get-ADUser -Filter { Name -eq $user }
//
// rest of code here
//
}
catch{
Write-Host "ERROR : Failed to locate user.";
}
Em seguida, você pode usar o cmdlet Set-ADAccountPassword para redefinir a senha (consulte o hiperlink) . Isso requer o nome distinto (DN) do usuário, que será um atributo do seu objeto $ objUser retornado pela chamada Get-ADUser .
Eu não posso testar isso aqui, então se você tentar isso a partir de um prompt interativo do PowerShell, poderá ver quais atributos existem para o seu objeto $ objUser :
$test = Get-ADUser -Filter { Name -eq "jimbob" }
$test | Get-Member
Suspeito que exista um atributo DN ou DistinguishedName , mas, como eu disse, não posso testar daqui.
Experimente e atualize aqui com progresso, se precisar de mais ajuda ...