powershell - 来自 power-shell 的 Active Directory 用户密码验证
问题描述
当我从 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,并且密码更改尚未复制到那里,或者
- 它可能通过 NTLM(而不是 Kerberos)进行身份验证,在这种情况下,如本文所述,旧密码仍然有效一小时。
推荐阅读
- git - 如何在本地将活动分支合并到另一个分支?
- javascript - Laravel:我在控制器中编写的 URL 在视图中不起作用
- python - 熊猫:用空白分组替换重复值,例如
- google-cloud-platform - 如何将文件从互联网直接下载到 Google Cloud 存储桶
- angular - 如何将 NgControl 状态传递给 Angular 中的子组件,实现 ControlValueAccessor?
- javascript - 如何单击按钮更改其属性并禁用?
- html - 旋转 90 度的六边形不会在容器内生长
- python-3.x - 在创建 Spark DataFrame 时从 hdfs 文件传递模式
- material-ui - 服务器和客户端呈现的组件之间的类名不一致
- mongodb - 如何在 MongoDB 中存储查找值?