Как массово обмануть включенную галку PasswordNeverExpires при внедрении парольной политики

топ 100 блогов ru_sysadmins10.11.2015 Вот представим себе - вам нужно срочно внедрять свежую парольную политику в AD (сложность паролей там, помнить 24 и не повторяться, менять через 60-90 дней и так далее). А у вас там 3000 учеток, и у всех почему-то PasswordNeverExpires включено, причем давность изменения паролей от месяца до 7 лет. Чо делать?

Вот статьи например:

https://social.technet.microsoft.com/Forums/windowsserver/en-US/9c3caa80-9e97-4808-96a8-5af696aaa7b3/pwdlastset-possible-to-change-?forum=winserverDS

Точнее вот:
https://social.technet.microsoft.com/Forums/fr-FR/6622c897-c460-41ce-a237-a6eabff3ca12/why-cant-i-set-pwdlastset-with-setaduser?forum=winserverpowershell

https://community.spiceworks.com/how_to/29586-active-directory-how-to-reset-password-expiration-date


Можно просто убрать искомую галочку, но тогда все учетки заблочатся по просрочке.
Но можно обмануть систему)
Аттрибут PwdLastSet в AD можно менять вручную только на 2 значения, как я понял.
0 = пароль учетки сразу истекает
-1 = в аттрибут автоматом записыватся текущий timestamp и у учетки есть впереди 60-90 дней на смену пароля, согласно политики.

Текст скрипта (предварительно можно скачать командлеты Quest for AD, так удобнее)

Add-PSSnapin Quest.ActiveRoles.ADManagement
import-module activedirectory

#получаем имена SAM из списка DisplayName (список нужных учеток уж сами как-то получите)

$Data = ForEach ($User in (Get-Content "C:\_temp\DN.csv")) { Get-QADuser $User | Select SamAccountName}
$Data | Export-CSV "C:\_temp\SAM.csv" -NoTypeInformation

#потом в файле SAM.csv вручную убрать кавычки.
#и ессно сохранять всё в Unicode, через Блокнот например

ТЕКСТ СКРИПТА:

import-module activedirectory
$users = Get-Content "C:\_temp\SAM.csv"

#$users = "ivan.ivanov"
#для теста одиночной учетки

foreach ($user in $users)
{
$username = Get-ADUser -identity $user
$uObj = [ADSI]"LDAP://$username"
$uObj.put("pwdLastSet", 0)
$uObj.SetInfo()
$uObj.put("pwdLastSet", -1)
$uObj.SetInfo()

Get-ADUser -identity $user | Set-ADUser -PasswordNeverExpires $false
}

Оставить комментарий

Архив записей в блогах:
Любой нормальный хозяин должен время от времени обходить свои владения. Проверять всё ли в порядке, не появилось ли чего новенького и где какой беспорядок. Никогда не забуду отсечные осмотры корабля командиром. Ежедневно, с понедельника по пятницу, Командир, если он, конечно, норма ...
Сегодня удалось узнать подробности происшествия из первых уст(Помогли 4 года на заводе и огромное количество знакомых) от работяги(назовем его Рома) работавшего в ту злополучную смену. Оказалось что слухи о групповом сильно преувеличенны, сработал эффект деревни когда в одном конце деревни ...
Очень важный шаг. Собственно, Лёвочкин и организовал шизотусу, известную как "Евромайдан". Мультимиллионер, паук-интриган, либерал и западник, друг и давний партнёр олигарха Фирташа, а также криминального авторитета международного масштаба Семёна Юдковича Могилевича. ...
Помните события в Афганистане после взрывов башен-близнецов? Лично я тогда никак не мог понять, зачем Путину потребовалось поддерживать «Северный альянс», играть на стороне американцев, да просто сдать Афганистан американцам. Если бы «Северный альянс» не разгромил тогда талибов, то ...
Традиционные статистические итоги года:). Судя по карте посещения блога, можно сказать, что его читает весь мир:)). Есть еще недоработки, конечно. Исландия вон не охвачена, Афганистан, большинство стран Африки, но тем не менее!:). Ну и да, поздравляю всех с праздниками! А то ведь под кат ...