Powershell 如果没有第二个帐户查询广告,如何检测广告用户密码是否过期?

Powershell 如果没有第二个帐户查询广告,如何检测广告用户密码是否过期?,powershell,passwords,detect,Powershell,Passwords,Detect,我已经创建了一个(PowerShell)向导来引导用户完成(远程)将其计算机加入域的过程。 脚本在(标准)本地管理员的登录下运行,并使用相关用户的凭据查询AD和加入计算机(添加计算机)。 用户对一个或多个特定AD计算机帐户具有将该计算机加入域的明确权限(他不是域管理员) 一切正常,但对于新员工,密码设置为“用户必须在下次登录时更改密码”。 每当我使用密码过期的用户的凭据在AD中查询某些内容时,我总是会得到一个一般性错误:“未知用户名或错误密码。” 如何确定密码已从帐户本身过期(不使用任何其他帐户

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

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

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

这可能吗? (Windows操作系统在登录时如何做到这一点?)


此问题与此不同,因为在此场景中,您有另一个帐户可用于查询广告。

找到此问题,但此时无法进行测试
Get-ADUser$env:UserName-属性PasswordExpired、PasswordNeverExpires、PasswordLastSet

编辑:正如您所提到的,您不能查询广告,因为您使用的本地管理员帐户不是广告的一部分,并且您没有广告帐户来查询您正在测试的帐户的密码过期情况


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

请参考Vincent,这正是我不想看到的。如前所述,向导在本地管理员帐户下运行,
$env:UserName
无法登录,因为计算机尚未加入且其密码已过期。如果您执行类似于
Get ADUser“User001”-Credential$User001Credential-properties PasswordExpired、PasswordNeverExpires、PasswordLastSet
的操作,则会得到Get ADUser:目标名称不正确或服务器拒绝了客户端凭据。当用户自己的密码设置为“用户下次登录时必须更改密码”时,我知道,我猜当您使用
Get-Credential
cmdlet获取$user001Credential时,弹出窗口也不会查询AD以验证凭据(并通知到期情况)?不,据我所知,
Get Credential
根本无法访问AD。不确定您是否已经解决了这个问题,但这个问题是否解决了您的问题?我猜这是出于安全考虑而设计的(有点道理,如果你没有授权访问广告,你就不能检索信息,比如你试图破解的账户是否确实存在)