Назад | Перейти на главную страницу

Мониторинг измененных пользователей / групп Active Directory

Я пытаюсь настроить мониторинг vbscript для активного каталога. Мне нужно экспортировать в файл всех пользователей, которые были изменены. Этот сценарий будет запускаться каждые 10 минут и экспортировать всех измененных пользователей (учетная запись изменена, дата изменения, кто изменил). То же самое и с групповыми модификациями (другой выходной файл).

Я не против использовать vbscript, csvde или dget, dsquery или пакет для получения этой информации. Все, что я могу настроить по расписанию, нормально.

Вы можете сделать большую часть этого с помощью powershell и LDIF - например, приведенный ниже фрагмент создаст файл с именем ad.txt, в котором список пользовательских объектов был изменен или добавлен за последние десять минут.

$DateString = (Get-Date).AddMinutes(-10).ToString("u") -Replace "-|:|\s"
$DateString = $DateString -Replace "Z", ".0Z"
$LdapFilter = """" + "(&(|(whenChanged>=" + $DateString + ")(whenCreated>=" + $DateString + "))(objectClass=user))" + """" 
$lCmd = "ldifde -f ad.txt -r " + $LdapFilter + " -l ""dn,whenCreated,whenChanged"""
Invoke-Expression $lCmd

Хорошо, я нашел это в TechNet:

Мониторинг групп в OU в AD на предмет изменений членства в группах

Этот сценарий запускается в запланированной задаче для отслеживания и предупреждения изменений в Active Directory. Любые изменения членства в группе вызовут создание оповещения по электронной почте с включенными изменениями.

Скрипт сохраняет текущих членов групп в XML-документе, а затем сравнивает текущий каталог каждые X минут. Сценарий не обнаружит изменений в течение периода времени, в течение которого выполняется запланированная задача, т.е. если участник был добавлен и удален между запуском задачи, никаких изменений не будет обнаружено.

Я запускаю сценарий каждые 15 минут и считаю его очень эффективным.

Он обнаруживает изменения в учетных записях пользователей, компьютеров или групп.

Спасибо, Бен Уилкинсон!

Звучит так, как будто это была бы простая просьба, но быстро кипит океан.

Хотя есть коммерческие продукты, которые делают это (и причины станут очевидными), в основном вам нужно выполнить свой запрос (все пользователи, у которых дата изменения меньше 10 минут назад). К сожалению, это не скажет вам, что изменилось. Я также не думаю, что он скажет вам, кто внес изменение (вы можете объединить его с журналами AD средства просмотра событий). (Я не уверен, но это также может улавливать изменения пароля.)

Что вам также нужно сделать, чтобы завершить эту картину, вам в основном нужно экспортировать каждого пользователя и все его свойства и хранить их записи с метками времени.

На этом этапе я хотел бы указать, что вы создаете несколько отдельных баз данных, которые содержат (подмножество) содержимого Active Directory.

После того, как у вас есть список измененных пользователей, вам нужно провести сравнение текущего и предыдущего состояния объекта и предоставить эти данные всем, кому это нужно.

Затем в какой-то момент вам придется все навести порядок, потому что хранение нескольких копий ваших объектов AD начнет занимать место ... Как только отчет об изменениях выйдет, вам действительно нужно только сохранить текущую и непосредственно предыдущую запись.

В зависимости от количества пользователей в вашей среде, количества людей, которые могут вносить изменения (администраторы, служба поддержки и т. Д.), И частоты этих изменений, это может очень быстро стать неуправляемым.

Честно говоря, если вы не пытаетесь быстро обнаружить проступок, 10 минут, вероятно, будет лишним; Я бы сделал не больше часа, а возможно, и дневной рекорд.

Но вот несколько мест, с которых можно начать:

Я могу опоздать на вечеринку, но я написал сценарий для отслеживания изменений пользователей / групп Мониторинг групп и изменений пользователей с помощью Power Shell. Обычный подход большинства скриптов, которые мне удалось найти, заключался в отслеживании изменений, происходящих на уровне AD, путем сравнения до и после изменений. Мой подход делает это путем прохождения событий, хранящихся в контроллерах AD. Большим преимуществом этого является то, что он точно сообщает вам, кто и когда вносит изменения.

Этот сценарий PowerShell может создавать отчет в соответствии с заданными вами параметрами и отслеживать изменения, происходящие с пользователями и группами в Active Directory. Он может сказать вам:

  • Когда и кто изменил членство в любой группе в вашем домене Active Directory
  • Когда и кто изменил данные пользователя, включая пароль, UserPrincipalName, SamAccountName и т. Д.…
  • Кто и когда менял пароли Когда и кто заблокировал аккаунт и где это произошло

Мне очень жаль, что я не вставляю сюда код, но там слишком много движущихся частей, а работа над ними продолжается. Надеюсь, ссылки будет достаточно и она кому-то поможет.

Пример отчета, который вы получаете ежедневно, ежемесячно или ежеквартально.