假设我有一个组策略,将密码的最大使用期限设置为 90 天。有些用户 91 天内没有更改密码,所以他们的密码应该过期了。
如果我随后删除该组策略以使最大密码使用期限未定义,该帐户是否仍会过期?换句话说,当该用户再次登录时,是否仍应要求他们更改密码?
我认为不是,但我似乎在我们的域控制器上观察到了完全相反的行为;也就是说,在我更改组策略设置并使用密码已过期的帐户登录后,我仍然收到有关它的提示。
是否有人确切知道这一点,或者我还遗漏了什么?
答案1
一旦密码过期,就完蛋了。他们会被提示更改密码。即使你更改了组策略。原因是该帐户有一个标志设置,上面写着“下次登录时更改密码”
您可以进入用户和组管理器并将用户密码设置回未过期。
答案2
这让我很困惑,而且很难用谷歌搜索,所以我发布了我在这个问题上找到的答案,因为这是唯一的结果之一。
我的问题与 OP 非常相似,我试图完全禁用密码过期功能,并尝试通过在默认域策略中设置为来实现Default Domain Policy > Computer Configuration > Policies > Windows Settings > Security Settings > Account Policy > Password Policy > Max Password Age
。Undefined
在接下来的几个月里,用户密码仍然过期,我反复检查组策略结果并rsop.msc
多次尝试追踪它。
最后我发现,要禁用密码过期,您需要将值设置为Max Password Policy
(而不是)(根据“解释”选项卡上的文档-derp)。Enabled
0 days
Undefined
帮助我得出这个结论的是使用以下查询检查所有帐户密码是否过期:
Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} `
–Properties "SamAccountName","msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "SamAccountName", @{Name="Password Expiry Date"; `
Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}} | FT
结果如下
PS C:\Windows\system32> Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} `
>> –Properties "SamAccountName","msDS-UserPasswordExpiryTimeComputed" |
>> Select-Object -Property "SamAccountName", @{Name="Password Expiry Date"; `
>> Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}} | FT
SamAccountName Password Expiry Date
-------------- --------------------
Administrator 2021-08-03 2:19:56 PM
User1.Surname1 2021-08-14 9:19:46 AM
User2.Surname2 2021-08-07 8:22:44 AM
User3.Surname3 2021-08-01 9:49:09 AM
User4.Surname4 2021-08-14 9:30:55 AM
etc.
将策略更新为后Enabled - 0 days
,我再次运行查询,这次结果显示任何帐户均未到期。
SamAccountName Password Expiry Date
-------------- --------------------
Administrator
User1.Surname1
User2.Surname2
User3.Surname3
User4.Surname4
etc.