用户帐户密码过期时是否会生成任何事件 ID?我希望编写一个通过事件触发的脚本?
我确实查看了四周,但没有发现任何与密码过期相关的内容 - 只发现与帐户过期相关的内容。
答案1
简而言之,不是的。
密码过期并不是真正发生的事件。它是 DC 在身份验证时根据帐户属性和适用于该帐户的密码策略执行的计算。如果您更改有关最大密码使用期限的策略或添加永不过期的标志,则密码当前已过期的帐户可能不再过期。
因此,如果您尝试编写一个脚本来处理密码过期的帐户,那么您也必须将其作为时间点计算来执行。如果您的 AD 是基于 2008 年或更高版本的,您可以访问msDS-用户密码到期时间计算构造的属性基本上考虑到了导致密码过期的所有因素,并为您提供了该用户密码将过期(或已过期)的时间戳。
答案2
既然您谈论的是 Active Directory 用户,为什么不查询域而不是触发事件呢?可用脚本它将找出即将过期的账户,如果你愿意的话,甚至可以向用户发送电子邮件。
我不确定您在找到过期密码后打算做什么,但此 PowerShell 查询将获取所有已启用且密码过期的域用户帐户:
Get-ADUser -Filter {(Enabled -eq $true) -and (PasswordNeverExpires -eq $false)} -Properties PasswordNeverExpires,PasswordExpired | where {$_.PasswordExpired -eq $true}
循环遍历该命令的输出比在所有域控制器上运行事件 ID 任务触发器要容易得多(假设您确实有多个域控制器)。