我不太确定这是否可行,但我需要强制某个安全组的用户密码过期,这样他们下次登录时就会被强制更改密码。这样做的原因是我对这个特定组应用了 FGPP(密码策略),以强制使用强密码。嗯,许多用户的密码都很弱,除非被强制更改,否则他们不会更改密码。
有没有办法做到这一点而不强迫每个人都使用一个密码?
答案1
您可以在 Powershell 和 Set-ADUser 中执行此操作。将 ChangepasswordatLogon 标志更改为 True。
看起来像这样:
Get-ADuser -Filter {memberof -RecursiveMatch "DN of Security Group"} | Set-ADuser -ChangePasswordatLogon:$true
答案2
如果您更喜欢 vbscript,那么为什么不使用 Powershell:搜索“vbscript set AD password to expired”会出现这篇文章: 如何使用户密码过期?
我没有亲自测试过。示例vbscript代码是:
Set objUser = GetObject("LDAP://CN=myerken,OU=Finance,DC=Fabrikam,DC=com")
objUser.pwdLastSet = 0
objUser.SetInfo
您可以将此代码与其他代码结合使用,以获取安全组中的用户列表(在 LDAP 查询中使用安全组 CN=),并循环遍历这些用户并应用此密码过期时间。这是通过搜索“vbscript getobject security group”找到的一个很好的例子: 使用 VbScript 获取特定 AD 组中的所有用户
答案3
这是一个命令提示符选项:
for /f "delims=" %a in ('dsquery group -name "<INSERT_GROUP_NAME_HERE>" ^| dsget group -members -expand') do (
dsmod user %a -mustchpwd yes
)