Я не совсем уверен, возможно ли это или нет, но мне нужно заставить пользователей определенной группы безопасности истечь срок действия своих паролей, чтобы они были вынуждены изменить их при следующем входе в систему. Причина этого в том, что я применил FGPP (политику паролей) к этой конкретной группе, чтобы обеспечить надежные пароли. Что ж, у многих пользователей действительно слабые пароли, и они не будут изменены, если их не заставят.
Есть ли способ сделать это, не заставляя всех вводить один пароль?
Вы можете сделать это в Powershell и Set-ADUser. Измените флаг ChangepasswordatLogon на True.
Это выглядело бы примерно так:
Get-ADuser -Filter {memberof -RecursiveMatch "DN of Security Group"} | Set-ADuser -ChangePasswordatLogon:$true
Вот вариант командной строки:
for /f "delims=" %a in ('dsquery group -name "<INSERT_GROUP_NAME_HERE>" ^| dsget group -members -expand') do (
dsmod user %a -mustchpwd yes
)
Если вы предпочитаете 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
Вы можете объединить это с другим кодом, чтобы получить список пользователей из группы безопасности (используйте группу безопасности CN = в запросе LDAP) и перебрать их, применяя истечение срока действия пароля. Это хороший пример того, что было найдено при поиске "vbscript getobject security group": Получите всех пользователей в определенной группе AD с помощью VbScript