Как я могу рандомизировать или поменять срок действия пароля через Active Directory?
Мы собираемся внедрить новую политику паролей, которая потребует от пользователей менять свой пароль каждые шесть месяцев. Нам также нужно, чтобы каждый пользователь сменил свой пароль на этой неделе. Я бы предпочел не создавать двухлетнюю безумную смену пароля и предпочел бы либо рандомизировать, либо поменять дату истечения срока действия пароля.
Я получаю сообщение об ошибке при попытке изменить свойство pwdLastSet в редакторе ADSI. Кажется, свойство может быть только для чтения. Если я могу написать в него, я не уверен, что изменение свойства pwdLastSet напрямую будет иметь какие-либо негативные последствия.
Я рассмотрел реализацию нескольких политик паролей, но из того, что я прочитал, несколько политик паролей не поддерживаются в DFL 2003, что потребует обновления (хотя это может привести к получению приличного оправдания для окончательного обновления).
Как можно избежать смены пароля в масштабе всей компании, которая происходит каждые шесть месяцев, когда все пользователи требуют немедленной смены пароля?
2 ответа
Есть несколько способов сделать это. У меня не было хорошего опыта, пытаясь рандомизировать это программно - пытаясь записать что-либо, кроме 0 или -1 в атрибут pwdLastSet, у меня не получилось.
Я предпочел бы применить вашу новую политику паролей, а затем истекать пароли группы пользователей на еженедельной основе, чтобы распределить нагрузку.
Вы можете использовать admodify для сброса даты последнего изменения. Я бы взял группу (я фактически импортировал список имен пользователей из файла TXT) и потребовал бы, чтобы они меняли свой пароль при следующем входе в систему.
Я держал электронную таблицу, чтобы узнать, каких пользователей еще нужно истечь.
Два недостатка этого подхода - вам нужно запустить этот скрипт несколько раз, и пользователи не получат полных шести месяцев использования своего первого сложного пароля.
Вдобавок ко всему, выберите случайный набор пользователей по истечении любого периода времени, когда вы хотите, чтобы срок действия их существующего пароля истек, затем истекает срок действия их паролей снова:
$users = get-aduser -filter * | get-random -count <my number of users>
foreach ($user in $users) {Set-ADUser $user -ChangePasswordAtLogon $true}
Очевидно, вам понадобится PowerShell для этого примера, но то же самое можно сделать на любом языке сценариев.