【问题标题】:Active directory user password verification from power-shell来自 power-shell 的 Active Directory 用户密码验证
【发布时间】:2020-04-01 20:45:03
【问题描述】:

当我从 Microsoft AD 用户更改活动目录用户密码并尝试从 Power shell 脚本验证凭据时。

问题是有一段时间它对旧密码和新密码都显示为 TRUE,然后过了一段时间它开始对旧密码显示为假。

不知道它在哪里缓存。

以下命令用于凭据验证,但我也尝试了谷歌上可用的所有命令,结果相同。

 $ct = [System.DirectoryServices.AccountManagement.ContextType]::Domain
 $pc = New-Object System.DirectoryServices.AccountManagement.PrincipalContext($ct, "xxxxx")
 $pc.ValidateCredentials("xxxx\myemail.abc", 12345).ToString() 

【问题讨论】:

  • 不是缓存。密码更改需要很短的时间在域控制器之间复制 - 您应该延迟构建或在更改密码的同一个 DC 上检查它。
  • @Sceptalist 只有一个 DC

标签: powershell active-directory


【解决方案1】:

可能会发生以下两种情况之一:

  1. 它可能在验证时遇到不同的 DC,而密码更改尚未复制到那里,或者
  2. 可能是通过 NTLM(而不是 Kerberos)进行身份验证,在这种情况下,this article describes,旧密码仍然有效一小时。

【讨论】:

  • 我们正在使用它的 LDAP 协议并且只有一个 DC
  • LDAP 协议仍需要进行身份验证。身份验证最好使用 Kerberos,但可以回退到 NTLM。
猜你喜欢
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
相关资源
最近更新 更多