Уведомление о блокировке учетной записи на почту

Задача: Хочу заранее знать, когда пользователь или кто-либо блокирует доменную учетную запись дабы предпринять меры по уточнению почему-так происходит и откуда это происходит.

Т.е. если с учетом доменной политики пользователь несколько раз вводит неправильный пароль (по практике 3 раза) от учетной записи она блокируется или же подключается на корпоративные ресурсы. Если в его профиле настроен корпоративный мессенджер QIP 2012 и также запись блокируется, то можно вспомнить что после совершенной смены пароля пароль также в нем нужно заменить. Конечно если не используется SSO авторизация клиента Jabber на OpenFire сервере (надо бы как-нибудь опубликовать такую заметку).

Что понадобится, для осуществления данной задачи:

Шаг №1: На домен контроллере (под управлением Windows Server 2012 R2 Std) создаю каталог script на диске C:\ куда помещаю написанный скрипт на PowerShell со следующем содержании который извлекает из Журнала Security вхождение за текущий день Event ID 4740

Я создаю и отлаживаю скрипты через Windows PowerShell ISE который запущен от имени «Run as administrator»

Ниже мой скрипт.

C:\script\email.ps1

123456789$EmailFrom = “alerter@polygon.com”$EmailTo = “ekzorchik@polygon.com, alektest@polygon.com”$EmailSubject = “Account on Domain lockout notification”$EmailBody = Get-EventLog -Newest 1 -LogName Security -InstanceId 4740 | fl | Out-String$EmailSMTPServer = “mail”$EmailSMTPClient = New-Object Net.Mail.SmtpClient($EmailSMTPServer, 25)$EmailSMTPClient.EnableSSL = $false$EmailSMTPClient.Credentials = New-Object System.Net.NetworkCredential(“polygon\com”, “<PASS_OT_ALERTER>”);$EmailSMTPClient.Send($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)

После не забываем сохранить внесенные изменения в скрипт.

На заметку: Можно создать почтовую группу и указать в скрипте ее дабы не указывать через запятую почтовые ящики.

Шаг №2: Проверяю, как он (Скрипт: email.ps1) отрабатывает:

123PS C:\Windows\system32> cd C:\scripts PS C:\scripts> .\email.ps1

И мне на почту приходит сообщение о сегодняшнем событии с кодом Event ID 4740:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849От кого: alerter@polygon.com Кому: ekzorchik@polygon.com;alektest@polygon.com Тема письма: Account on Domain lockout notification Тело письма: Index              : 31448043 EntryType          : SuccessAudit InstanceId         : 4740 Message            : A user account was locked out. Subject: Security ID:                         S-1-5-18 Account Name:                SRV-DC01$ Account Domain:                             POLYGON Logon ID:                            0x3e7 Account That Was Locked Out: Security ID:                         S-1-5-21-3047235358-3121078203-50501672-1155 Account Name:                alektest2 Additional Information: Caller Computer Name: WRKST009A Category           : (13824) CategoryNumber     : 13824 ReplacementStrings : {alektest2, WRKST009A, S-1-5-21-3047235358-3121078203-50501672-1155, S-1-5-18…} Source             : Microsoft-Windows-Security-Auditing TimeGenerated      : 27.02.2020 11:52:47 TimeWritten        : 27.02.2020 11:52:47 UserName           :

Ну что понятно все. В принципе это достаточно.

Шаг №3: Создаю на домен контроллер задание в планировщике

Win + X – Control panel – Administrative Tools – Task Scheduler – Task Scheduler (local) – Task Scheduler Library – Event Viewer Tasks - Create Task

  • Name: Security_Microsoft-Windows-Security-Auditing_4740
  • When running the task, use the following user account: POLYGON\ekzorchik
  • Run whether user is logged on or not: отмечаю
  • Do not store password. The task will only have access to local computer resources: отмечаю

Вкладка Trigger

  • Begin the task: On an event
  • Settings: Basic
  • Log: Security
  • Source: Microsoft Windows security auditing
  • Event ID: 4740
  • Enabled: отмечаю галочкой

Вкладка Actions

  • Action: Start a program
  • Program/script: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
  • Add arguments (optional): c:\script\email.ps1

Вкладка Conditions

  • Start the task only if the computer is on AC Power: отмечаю
  • Stop if the computer switches to battery power: отмечаю

Вкладка Settings

  • Allow task to be run on demand: отмечаю
  • Stop the task if it runs longer than: 3 days
  • If the running task does not end when requested, force it to stop: отмечаю

Шаг №4: У меня было что задача не выполняется и в History есть сообщение на этот счет

Event ID: 101

Task Scheduler failed to start “\Event Viewer Tasks\Security_Microsoft-Windows-Security-Auditing_4740” task for user “POLYGON\ekzorchik”. Additional Data: Error Value: 2147943785

Все кстати правильно у моей учетной записи ekzorchik на домен контроллерах нет прав хотя она и входа в группу Domain Admins. Даю ей права:

mstsc /v:Srv-dc01.POLYGON.COM – user&pass – Login: ekzorchik Pass: <PASSWOD> - Win + X – Control Panel – Administrative Tools – Group Policy Management – Group Policy Management – Forest: POLYGON.COM – Domains – POLYGON.COM – Domain Controllers открываю на редактирование Default Domain Controllers Policy и

Default Domain Controllers Policy [SRV-DC01.POLYGON.COM] – Computer Configuration – Policies – Windows Settings – Security Settings – Local Policies – User Rights Assignment – Log on as a batch job и добавляю свою доменную административную учетную запись: ekzorchik

После нужно на домен контроллере сделать:

Win + X – Command Prompt (Admin) –

C:\Windows\system32>gpupdate /force

И задание начинает отрабатывать.

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

Шаг №5: Если вы в процессе отладки строки вызова Get-eventlog получаете ошибку “ Get-eventlog: Requested registry access is not allowed”, то решение просто как две копейки: Нужно запустить консоль командной строки powershell или Windows PowerShell ISE от имени Администратора

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

На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.