如何在没有第二个帐户查询AD的情况下检测AD用户密码是否过期?

时间:2015-05-30 15:28:58

标签: powershell passwords detect

我创建了一个(PowerShell)向导来引导用户完成整个过程(远程)将他的计算机加入域。 该脚本在(标准)本地管理员的登录下运行,并使用相关用户的凭据查询AD并加入计算机(Add-Computer)。 用户对一个或多个特定AD计算机帐户具有显式权限,以将该计算机加入域(他是域管理员)。

一切正常但是对于新员工,密码设置为“用户必须在下次登录时更改密码”。 每当我使用密码过期的用户凭据在AD中查询某些内容时,我总会收到一般错误:“未知用户名或密码错误。”

如何从帐户本身(不使用任何其他帐户)确定密码已过期,以便提示更改密码?

这有可能吗? (Windows操作系统如何在登录时执行此操作?)

此问题与How can I query users with an expired password in Active Directory?不同,因为在这种情况下,您有另一个帐户可用于查询AD。

1 个答案:

答案 0 :(得分:3)

发现了这一点,但此时无法进行测试 Get-ADUser $env:UserName -properties PasswordExpired, PasswordNeverExpires, PasswordLastSet

编辑:正如您所提到的,您无法查询AD,因为您在不属于AD的本地管理员帐户下运行,并且您没有AD帐户来查询您正在测试的帐户的密码到期时间。

这似乎是设计的,对于新员工,您需要设计一种方法使密码在一定时间后过期,而不是在首次登录时过期。