Откопал интересный скриптик, с помощью которого можно оперативно получать уведомление о заблокированном аккаунте. Почитав комментарии, чуть чуть его изменил, чтобы он быстрее работал и не выдавал ошибок.
Сам скрипт кладется на домен контроллер, там же запускается Task Scheduler и в нес создается задача с триггером на EventID: 4740 в Security Log и действием, содержащим запуск C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe с параметром в виде пути к скрипту и его именем, например, C:\cmd\account-lockout-notification.ps1
#Отсылка сообщений о блокировании аккаунтов
$Event=Get-EventLog -LogName Security -InstanceId 4740 -Newest 1 -ErrorAction SilentlyContinue
$MailBody= $Event.message
$MailSubject= "User Account locked out"
$SmtpClient = New-Object system.net.mail.smtpClient
$SmtpClient.host = "smtp.domain.com"
$MailMessage = New-Object system.net.mail.mailmessage
$MailMessage.from = "AcctLockNotify@domain.com"
$MailMessage.To.add("it@domain.com")
$MailMessage.IsBodyHtml = 1
$MailMessage.Subject = $MailSubject
$MailMessage.Body = $MailBody
$SmtpClient.Send($MailMessage)
Доброго времени суток, а для 2003 винды есть, что нить подобное?
спасибо.
комментарий от Demon — 25.02.2013 @ 13:28 |
В случае 2003 сервера нужно переделать:
1. Сделать событие запускающее скрипт раз в 5-10 минут
2. В самом скрипте сделать выборку не последнее событие, а события за последние 6-11 минут
3. Ну и отправку делать, если количество этих событий больше нуля
Кстати, чуть позже будет другая версия этого скрипта, там вывод красивее и удобочитаемее. Ну и самих скриптов будет пачка, для разных полезных событий :-)
комментарий от itpadla — 25.02.2013 @ 14:59 |
Доброй день, а что именно нужно переделать? и как запустить. C PowerShell-ом к сожелению не знаком :(
комментарий от Demon — 26.02.2013 @ 05:09 |
Если говорить об этом скрипте, то меняете соответсвующий кусок на
$Event=Get-EventLog -LogName Security -InstanceId 4740 -ErrorAction SilentlyContinue -Before (Get-Date).date -After (Get-Date).AddMinutes(-6)
Затем делается cmd с содержимым
C:\WINDOWS\system32\WindowsPowerShell\v1.0\PowerShell.exe -PSConsoleFile «C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1» -command «. ‘c:\cmd\account-lock-notification.ps1′» -NonInteractive -nologo
На путь с указанием 1.0 не обращайте внимания, это исторический рудимент. PS должен стоять не ниже 2.0
P.S. А с PowerShell рекомендую познакомиться. Он сильно облегчает жизнь, в некоторых случаях просто необходим, а с учетом тенденций от MS уже переходит в состояние обязательно требуется.
Для начала, рекомендую посмотреть в сторону PowerGUI и PowerShell Commands for Active Directory от компании Quest. Очень полезная вещь, бесплатная и работает с Windows Server 2003. Я с помощью несложных скриптов, в свое время, себе весь AD «причесал». Описания, города, адреса, телефоны и т.д.
комментарий от itpadla — 26.02.2013 @ 09:00 |
1 качаю power shell
2 ставлю на любой КД в сети
3 сохраняю cmd, запускаю и смотрю что происходит :)
комментарий от Demon — 26.02.2013 @ 10:47 |
[…] я публиковал заметку Автоматическое уведомление о заблокированных аккаунт…. Там было вполне рабочее решение, но у него был один […]
Уведомление от Оперативный контроль аккаунтов пользователей и компьютеров в Active Directory | Заметки IT Менеджера — 12.03.2013 @ 11:16 |