почему считаете что проще застрелится… вполне себе нормально отрабатывает. Все конечно зависит от объема, но в моем случае вполне даже себе справляется. Конечно проиндексированные данные из БД парсить куда удобнее. Поделитесь?)
Слишком больше логи ооочень долго парсит. Лучше запускать скрипт с более-менее нормальным периодом, и смысла не будет хранить виндовые логи в архивах. Слишком уже они неудобные.
Конечно же, там где возможно в целях безопасности выделяют отдельный менеджмент влан. Но к сожалению не ко всему применимо, т.к. есть общедоступные сервисы, которые некоторым кажутся «заманчивыми»:)
Все равно считаю, что лучше когда каждый такой скрипт будет работать на каждом КД. На случай если связь к КД пропадет, скрипт будет работать и писать в удаленной сети лог в отдельный файл, потом его можно просмотреть,…
хм… поле Message содержит много служебной информации же: Message : Создана учетная запись компьютера.
Субъект:
Идентификатор безопасности: S-1-5-21-451469775-2953165952-2320738315-500
Имя учетной записи: administrator
Домен учетной записи: DOMAIN
Идентификатор входа: 0xb3acf
Новая учетная запись компьютера:
Идентификатор безопасности: S-1-5-21-451469775-2953165952-2320738315-2979
Имя учетной записи: TEST$
Домен учетной записи: DOMAIN
Атрибуты:
Имя учетной записи SAM: TEST$
Отображаемое имя: -
Основное имя пользователя: -
Домашний каталог: -
Домашний диск: -
Путь к сценарию: -
Путь к профилю: -
Рабочие станции пользователя: -
Последний пароль задан: <никогда>
Срок действия учетной записи истекает: <никогда>
Идентификатор основной группы: 515
Разрешено делегировать: -
Старое значение UAC: 0x0
Новое значение UAC: 0x85
Управление учетной записью пользователя:
Учетная запись отключена
"Пароль не требуется" - включено
"Учетная запись доверия рабочей станции" - включено
Параметры пользователя: -
Журнал SID: -
Часы входа: <значение не задано>
DNS-имя узла: -
Основные имена служб: -
Дополнительные сведения:
Privileges -
Да, Вашу статью читал давненько, собственно это и сподвигло меня на, так сказать, продолжение…
В Get-EventLog на сколько я помню нет возможности доставать определенную информацию из поля Message:(
Проверьте, у вас точно событие есть с кодом 4741? Возможно компьютер в домен добавлялся давно и логи уже успели затереться…
Вполните команду в PS: Get-WinEvent -FilterHashtable @{LogName=”Security”;ID=4741}
Каков будет результат?
Спасибо за критику. Принял к сведению.
Вообще статью написал давно, не прошла модерацию, вчера вспомнил, перепостил.
Честно говоря поленился дописывать…
По факту сейчас у мменя отрабатывает следующим образом скрипт (немного добавлен функционал):
1. Отправка инфорацмии на почту
2. Отправка информации о критчных событиях в Jabber-сервис (для тех у кого в сети поднят XMPP-сервис) — дает оперативность получения информации.
3. Пишет в текстовый файл инормацию. В частности сделан скрипт который отслеживает критически важные папки общего пользования, и пишет логи о доступе пользователей к файлам, а так же об удалении файлов.
Если интересно могу выложить код…
Вообще в павершеле я новичек… поэтому на многие камни придется понаступать не раз:) Интересно было замечание по поводу ковычек и про скрытие пароля.
Вообще скрипт позиционирует себя как «скопировал-вставил и все работает» :)
По поводу сборки логов со всех контроллеров… возможно, но кидать целый лог со всех контроллеров на один сервер затратнее, чем кидать с каждого контроллера уже отформатированные данные.
А для сбора логов существуют другие продукты, о них раскажу позже… как раз недавно развернул…
Обязательно сделаю чуть позже)
$BodyM = $Body
Извиняюсь за флуд( Вот правильный код, который нужно добавить…
Добавьте этот код перед сегмнетом по отправке письма.
И оставьте как есть в письме переменную $BodyM
$body = $body -replace "@{" -replace "}" -replace "=", ": " -replace ";","`n" -replace "TimeCreated","Время" -replace "^","`n" $body = $body -replace "Италмас.+$" -replace "CN:" -replace "OU:" $BodyM = $Body
Message : Создана учетная запись компьютера. Субъект: Идентификатор безопасности: S-1-5-21-451469775-2953165952-2320738315-500 Имя учетной записи: administrator Домен учетной записи: DOMAIN Идентификатор входа: 0xb3acf Новая учетная запись компьютера: Идентификатор безопасности: S-1-5-21-451469775-2953165952-2320738315-2979 Имя учетной записи: TEST$ Домен учетной записи: DOMAIN Атрибуты: Имя учетной записи SAM: TEST$ Отображаемое имя: - Основное имя пользователя: - Домашний каталог: - Домашний диск: - Путь к сценарию: - Путь к профилю: - Рабочие станции пользователя: - Последний пароль задан: <никогда> Срок действия учетной записи истекает: <никогда> Идентификатор основной группы: 515 Разрешено делегировать: - Старое значение UAC: 0x0 Новое значение UAC: 0x85 Управление учетной записью пользователя: Учетная запись отключена "Пароль не требуется" - включено "Учетная запись доверия рабочей станции" - включено Параметры пользователя: - Журнал SID: - Часы входа: <значение не задано> DNS-имя узла: - Основные имена служб: - Дополнительные сведения: Privileges -
А хочется чтоб красиво и удобочитаемо:)
В Get-EventLog на сколько я помню нет возможности доставать определенную информацию из поля Message:(
Вполните команду в PS:
Get-WinEvent -FilterHashtable @{LogName=”Security”;ID=4741}
Каков будет результат?
Вообще статью написал давно, не прошла модерацию, вчера вспомнил, перепостил.
Честно говоря поленился дописывать…
По факту сейчас у мменя отрабатывает следующим образом скрипт (немного добавлен функционал):
1. Отправка инфорацмии на почту
2. Отправка информации о критчных событиях в Jabber-сервис (для тех у кого в сети поднят XMPP-сервис) — дает оперативность получения информации.
3. Пишет в текстовый файл инормацию. В частности сделан скрипт который отслеживает критически важные папки общего пользования, и пишет логи о доступе пользователей к файлам, а так же об удалении файлов.
Если интересно могу выложить код…
Вообще в павершеле я новичек… поэтому на многие камни придется понаступать не раз:) Интересно было замечание по поводу ковычек и про скрытие пароля.
Вообще скрипт позиционирует себя как «скопировал-вставил и все работает» :)
По поводу сборки логов со всех контроллеров… возможно, но кидать целый лог со всех контроллеров на один сервер затратнее, чем кидать с каждого контроллера уже отформатированные данные.
А для сбора логов существуют другие продукты, о них раскажу позже… как раз недавно развернул…