00m.Ru
29Ноя/120

Как почистить AD от не использующихся компов

Возникла такая необходимость почистить AD от давно мертвых компов, начал искать решения и нашел просто замечательную статью. Да простить меня автор, но я просто обязан опубликовать ее, ибо сберегла мне она очень много времени. надеюсь и вам поможет.  Публикую  слово в слово!

Рано или поздно в Active Directory появляются "мертвые" машины. Их уже нет. Их списали, переименовали, забросили в углу. Они не работают, а учетные записи от них остались. В большой компании они занимают лишнее место в и без того не маленькой базе AD. Встает вопрос о том, как эти записи найти и уничтожить.

Есть коммерческая утилита Janitor (в дословном переводе - уборщик) от Special Operations Software, но большой необходимости я в ней не вижу, ибо тот же функционал предлагает бесплатная утилитка OldCmp. Она без GUI, но вряд ли это недостаток.

OldCmp - один единственный исполняемый файл. Чтобы найти машины, не использовавшиеся 100 дней, запускаем:

oldcmp -report -age 100

В ответ утилита создаст файл HTML с отчетом. О том, сколько компьютер не использовался, OldCmp узнает по дате последней смены пароля. Не путайте со сменой пользовательского пароля. У компьютеров есть свои пароли, которые они меняют без вашей помощи, по умолчанию в домене каждые 30 дней. В домене на базе Windows 2003 можно обрабатывать машины не по дате смены пароля, а по дате последнего логона на них, добавив ключ -llts:

oldcmp -report -age 100 -llts

Далее можно удалять машины, но лучше сначала отключить, и посмотреть что будет 🙂

oldcmp -disable -unsafe -forreal -llts -age 100

Если никаких проблем не выявлено, можно удалять:

oldcmp -delete -unsafe -forreal -llts -age 100

Все остальное можно найти в документации к программе. Ниже привожу примеры из документации, по ним и так все понятно:

Ex1:
oldcmp /?
Display this help
Ex2a:
oldcmp -report
Generate html report of all cmpaccs > 90 days old
Ex2a:
oldcmp -report -format dhtml -sh
Generate dhtml report of all cmpaccs > 90 days old
Open the report after generating it
Ex2c:
oldcmp -report -format csv
Generate csv report of all cmpaccs > 90 days old
Ex3a:
oldcmp -report -age 0
Generate html report of all cmpaccs
Ex3b:
oldcmp -report -age 0 -format csv -delim tab
Generate csv (tab delimited) report of all cmpaccs
Ex4:
oldcmp -report -age 0 -onlydisabled
Generate html report of all disabled cmpaccs
Ex5:
oldcmp -report -age 0 -onlydisabled -sort cn
Generate html report of all disabled cmpaccs, sort on name
Ex6:
oldcmp -delete -age 0 -onlydisabled
Generate html report of all disabled cmpaccs, sort on pwage
Will show you what it would try to delete. Only up to 10.
Ex7:
oldcmp -delete -age 0 -onlydisabled -safety 100
Generate html report of all disabled cmpaccs, sort on pwage
Will show you what it would try to delete. Only up to 100.
Ex8:
oldcmp -delete -age 0 -onlydisabled -unsafe
Generate html report of all disabled cmpaccs, sort on pwage
Will show you what it would try to delete. All cmpaccs.
Ex9:
oldcmp -delete -age 0 -onlydisabled -unsafe -forreal
Generate html report of all disabled cmpaccs, sort on pwage
Will REALLY DELETE all accounts identified.
Ex10:
oldcmp -disable -unsafe -forreal
Generate html report of all cmpaccs > 90 days, sort on pwage
Will REALLY DISABLE all accounts identified.
Ex11:
oldcmp -report -sort OS -age 0 -maxage 60
Generate html report of all cmpaccs still valid, sort on OS
Ex12:
oldcmp -report -af “(operatingsystem=Windows XP Professional)-onlydisabled -age 0
Generate html report of all disabled Windows XP machines
Ex13:
oldcmp -report -b ou=mycmps,dc=domain,dc=com
Generate html report of cmpaccs >90 days in specified OU