Powershell-在AD中测试用户凭据,并重置密码


8

我可以成功使用Powershell告诉用户是否在Active Directory中进行了身份验证:

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

Test-ADAuthentication "test" "Password1"

但是,我无法终生解决:

  1. 检查是否需要重置密码,同时
  2. 验证发送的凭据确实可以使用其上一个密码。

怎么会这样呢?


:有些较好地解决了同样的问题在这里stackoverflow.com/questions/7663219/...
尼克Kavadias

Answers:


8

可以通过运行进程来测试凭据。下面的例子

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

或者简单地:

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

系统将提示您输入密码。如果需要从字符串中读取密码(错误的做法),则需要预先初始化凭证对象。有关该方法的更多详细信息,请参见帮助。

Get-Help Get-Credential

您可能会发现,如果用户没有远程权限,此启动过程将无法正常工作。...我发现这里的答案很有帮助。serverfault.com/questions/276098/...
安德鲁·佩特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.