PowerShell — Аудит создания и удаления пользователей в Active Directory

Для уведомлений о создание и удаления пользователя в Active Directory я использую два скрипта PowerShell , всегда в курсе кто создал и кто удалил пользователя.

Скрипт 1: Создание пользователя

$Theme = “Добавлен новый пользователь в домен”
$Subject = “Создание пользователя”
$Server = “mail.domain.local”
$From = “ad-event-4720@domain.local”
$To = “d.kudryavtsev@domain.local”
$encoding = [System.Text.Encoding]::UTF8
 
$Body=Get-WinEvent -FilterHashtable @{LogName=”Security”;ID=4720} | Select TimeCreated,@{n=”Оператор”;e={([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq “SubjectUserName”} |%{$_.’#text’}}},@{n=”Имя пользователя”;e={([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq “SamAccountName”}| %{$_.’#text’}}} | select-object -first 1
 
$body = $body -replace "@{" -replace "}" -replace "=", ": " -replace ";","`n" -replace "TimeCreated","Время" -replace "^","`n"
$BodyM = $Body
 
Send-MailMessage -From $From -To $To -SmtpServer $server -Body$Theme `n$BodyM-Subject $Subject -Encoding $encoding

Скрипт 2: Удаление пользователя

$Theme = “Удален пользователь в домене”
$Subject = “Удален пользователь в домене”
$Server = “mail.domain.local”
$From = “ad-event-4726@domain.local”
$To = “d.kudryavtsev@domain.local”
$encoding = [System.Text.Encoding]::UTF8
 
$Body=Get-WinEvent -FilterHashtable @{LogName=”Security”;ID=4726} | Select TimeCreated,@{n=”Оператор”;e={([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq “SubjectUserName”} |%{$_.’#text’}}},@{n=”Имя пользователя”;e={([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq “TargetUserName”}| %{$_.’#text’}}} | select-object -first 1
 
$body = $body -replace "@{" -replace "}" -replace "=", ": " -replace ";","`n" -replace "TimeCreated","Время" -replace "^","`n"
$BodyM = $Body
 
Send-MailMessage -From $From -To $To -SmtpServer $server -Body$BodyM-Subject $Subject -Encoding $encoding

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

PowerShell — Аудит создания и удаления пользователей в Active Directory: 3 комментария

  1. Валерий

    Подскажите скрипт для удаления пустых доменных имен из active directory.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *