none
Аудит EventLog в AD RRS feed

  • Вопрос

  • Здравствуйте.

    Есть два скрипта:

    1) Уведомление при создание пользователя в AD на почту все работает:

    #Определяем все переменные для отправки
     $Theme = “Добавлен новый пользователь в домен” # Первая строчка в теле письма, чтобы понимать о чем речь.
     $Subject = “Создание пользователя” # Тема сообщения
     $Server = “mail.domain.local” # SMTP Сервер
     $From = “ad-event-4720@domain.local” # Адрес отправителя
     $To = “chubaka@domain.local” # Получатель
     $encoding = [System.Text.Encoding]::UTF8 #Устаналиваем кодировку UTF8 для корректного отображения информации в теле письма
    
    #Собственно сам запрос поиска события. Выбирается последнее произошедшее событие с таким ID. Данные записываются в переменную Body.
    
    $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

    Приходит письмо:

    Добавлен новый пользователь в домен 
    
    Время: 14.03.2013 12:39:32
    Оператор: chubaka
    Имя пользователя: ADTEST232
    

    2) Уведомление при удаление пользователя тоже приходит письмо только пустое , почему ? Вот сам скрипт:

    #Определяем все переменные для отправки
     $Theme = “Удален пользователь в домене” # Первая строчка в теле письма, чтобы понимать о чем речь.
     $Subject = “Удален пользователь в домене” # Тема сообщения
     $Server = “mail.domain.local” # SMTP Сервер
     $From = “ad-event-4726@domain.local” # Адрес отправителя
     $To = “chubaka@domain.local” # Получатель
     $encoding = [System.Text.Encoding]::UTF8 #Устаналиваем кодировку UTF8 для корректного отображения информации в теле письма
    
    #Собственно сам запрос поиска события. Выбирается последнее произошедшее событие с таким ID. Данные записываются в переменную Body.
    
    $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 “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

    Заранее благодарен.


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 9:41

Ответы

  • Лично я проблем не вижу, все отрабатывает, как надо. Учетная запись от которой происходит запуск задания имеет право читать журнал Security? 

    Да права есть.

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    Что если закомментировать строку с Send-MailMessage, добавить вывод $BodyM и запустить скрипт в консоли?

    Удален пользователь в домене 
    
    
    
    Время: 14.03.2013 14:20:23
    
     Оператор: chubaka
    
    Имя пользователя:
    TESTER1213

    В консоли работает 



    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    Это от пользователя под которым планируется выполнять скрипт?
    • Помечено в качестве ответа MR.Minion 14 марта 2013 г. 11:32
    14 марта 2013 г. 11:17
    Отвечающий

Все ответы

  • Здравствуйте.

    Есть два скрипта:

    1) Уведомление при создание пользователя в AD на почту все работает:

    #Определяем все переменные для отправки
     $Theme = “Добавлен новый пользователь в домен” # Первая строчка в теле письма, чтобы понимать о чем речь.
     $Subject = “Создание пользователя” # Тема сообщения
     $Server = “mail.domain.local” # SMTP Сервер
     $From = “ad-event-4720@domain.local” # Адрес отправителя
     $To = “chubaka@domain.local” # Получатель
     $encoding = [System.Text.Encoding]::UTF8 #Устаналиваем кодировку UTF8 для корректного отображения информации в теле письма
    
    #Собственно сам запрос поиска события. Выбирается последнее произошедшее событие с таким ID. Данные записываются в переменную Body.
    
    $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

    Приходит письмо:

    Добавлен новый пользователь в домен 
    
    Время: 14.03.2013 12:39:32
    Оператор: chubaka
    Имя пользователя: ADTEST232

    2) Уведомление при удаление пользователя тоже приходит письмо только пустое , почему ? Вот сам скрипт:

    #Определяем все переменные для отправки
     $Theme = “Удален пользователь в домене” # Первая строчка в теле письма, чтобы понимать о чем речь.
     $Subject = “Удален пользователь в домене” # Тема сообщения
     $Server = “mail.domain.local” # SMTP Сервер
     $From = “ad-event-4726@domain.local” # Адрес отправителя
     $To = “chubaka@domain.local” # Получатель
     $encoding = [System.Text.Encoding]::UTF8 #Устаналиваем кодировку UTF8 для корректного отображения информации в теле письма
    
    #Собственно сам запрос поиска события. Выбирается последнее произошедшее событие с таким ID. Данные записываются в переменную Body.
    
    $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 “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

    Заранее благодарен.


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    Сделал :

    {$_.Name -eq “SubjectUserName”}  пропущен $,должно быть {$_.Name -eq $SubjectUserName}

    получилось вот так :

    $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 “SamAccountName”}| %{$_.’#text’}}} | select-object -first 1
    

    Приходит письмо как и рание:

    Удален пользователь в домене 

    А кто удалили и кого и время нет =(

    Заранее благодарен.



    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 10:12
  • {$_.Name -eq “SamAccountName”} - заменить на {$_.Name -eq “TargetUserName”}

    А так проблем нет, не возникает:

    Удален пользователь в домене

    Время: 07.02.2013 11:21:21
     Оператор: test
     Имя пользователя: test


    PS. {$_.Name -eq "SubjectUserName"} - тут я не туда посмотрел, не должно здесь быть $. События с id 4726 вообще присутствуют?
    • Изменено KazunEditor 14 марта 2013 г. 10:17
    14 марта 2013 г. 10:15
    Отвечающий
  • {$_.Name -eq “SamAccountName”} - заменить на {$_.Name -eq “TargetUserName”}

    А так проблем нет, не возникает:

    Удален пользователь в домене

    Время: 07.02.2013 11:21:21
     Оператор: test
     Имя пользователя: test


    PS. {$_.Name -eq "SubjectUserName"} - тут я не туда посмотрел, не должно здесь быть $. События с id 4726 вообще присутствуют?

    События есть:

    PS C:\Windows\system32> Get-WinEvent -FilterHashtable @{LogName="Security";ID=4726}
    
    TimeCreated                   ProviderName                                             Id Message
    -----------                   ------------                                             -- -------
    14.03.2013 14:20:23           Microsoft-Windows-Security...                          4726 Удалена учетная запись пол...
    14.03.2013 14:17:31           Microsoft-Windows-Security...                          4726 Удалена учетная запись пол...
    14.03.2013 14:08:59           Microsoft-Windows-Security...                          4726 Удалена учетная запись пол...
    14.03.2013 13:31:38           Microsoft-Windows-Security...                          4726 Удалена учетная запись пол...
    14.03.2013 13:29:10           Microsoft-Windows-Security...                          4726 Удалена учетная запись пол...
    14.03.2013 12:44:25           Microsoft-Windows-Security...                          4726 Удалена учетная запись пол...
    14.03.2013 12:32:22           Microsoft-Windows-Security...                          4726 Удалена учетная запись пол...
    14.03.2013 12:11:14           Microsoft-Windows-Security...                          4726 Удалена учетная запись пол...
    14.03.2013 12:00:35           Microsoft-Windows-Security...                          4726 Удалена учетная запись пол...
    14.03.2013 11:58:00           Microsoft-Windows-Security...                          4726 Удалена учетная запись пол...


    Приходит вот такое письмо:

    Вот сам скрипт на данный момент:

    #Определяем все переменные для отправки
     $Theme = “Удален пользователь в домене” # Первая строчка в теле письма, чтобы понимать о чем речь.
     $Subject = “Удален пользователь в домене” # Тема сообщения
     $Server = “mail.domain.local” # SMTP Сервер
     $From = “ad-event-4726@domain.local” # Адрес отправителя
     $To = “chubaka@domain.local” # Получатель
     $encoding = [System.Text.Encoding]::UTF8 #Устаналиваем кодировку UTF8 для корректного отображения информации в теле письма
    
    #Собственно сам запрос поиска события. Выбирается последнее произошедшее событие с таким ID. Данные записываются в переменную Body.
    
    $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 “$Theme `n$BodyM” -Subject $Subject -Encoding $encoding

    У меня эти скрипты работают через Планировщик заданий .

    Заранее благодарен.


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    • Изменено MR.Minion 14 марта 2013 г. 10:31
    14 марта 2013 г. 10:23
  • Get-WinEvent -FilterHashtable @{LogName="Security";ID=4726} | Select -First 1 -Expand Message
    14 марта 2013 г. 10:37
    Отвечающий
  • Get-WinEvent -FilterHashtable @{LogName="Security";ID=4726} | Select -First 1 -Expand Message
    PS C:\Windows\system32> Get-WinEvent -FilterHashtable @{LogName="Security";ID=4726} | Select -First 1 -Expand Message
    Удалена учетная запись пользователя.
    
    Субъект:
            Идентификатор безопасности:             S-1-5-21-4231654968-1618279416-2300147091-1603
            Имя учетной записи:             chubaka
            Домен учетной записи:           DOMAIN
            Идентификатор входа:            0x2f1a60523
    
    Целевая учетная запись:
            Идентификатор безопасности:             S-1-5-21-4231654968-1618279416-2300147091-1337
            Имя учетной записи:             TESTER1213
            Домен учетной записи:           DOMAIN
    
    Дополнительные сведения:
            Privileges      -



    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 10:42
  • Get-WinEvent -FilterHashtable @{LogName="Security";ID=4726} | Select -First 1 -Expand Message

    PS C:\Windows\system32> Get-WinEvent -FilterHashtable @{LogName="Security";ID=4726} | Select -First 1 -Expand Message
    Удалена учетная запись пользователя.
    
    Субъект:
            Идентификатор безопасности:             S-1-5-21-4231654968-1618279416-2300147091-1603
            Имя учетной записи:             chubaka
            Домен учетной записи:           DOMAIN
            Идентификатор входа:            0x2f1a60523
    
    Целевая учетная запись:
            Идентификатор безопасности:             S-1-5-21-4231654968-1618279416-2300147091-1337
            Имя учетной записи:             TESTER1213
            Домен учетной записи:           DOMAIN
    
    Дополнительные сведения:
            Privileges      -



    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    Тогда еще докучи,вывод -  (Get-WinEvent -FilterHashtable @{LogName="Security";ID=4726} | Select -First 1).ToXml()

    14 марта 2013 г. 10:44
    Отвечающий
  • Get-WinEvent -FilterHashtable @{LogName="Security";ID=4726} | Select -First 1 -Expand Message

    PS C:\Windows\system32> Get-WinEvent -FilterHashtable @{LogName="Security";ID=4726} | Select -First 1 -Expand Message
    Удалена учетная запись пользователя.
    
    Субъект:
            Идентификатор безопасности:             S-1-5-21-4231654968-1618279416-2300147091-1603
            Имя учетной записи:             chubaka
            Домен учетной записи:           DOMAIN
            Идентификатор входа:            0x2f1a60523
    
    Целевая учетная запись:
            Идентификатор безопасности:             S-1-5-21-4231654968-1618279416-2300147091-1337
            Имя учетной записи:             TESTER1213
            Домен учетной записи:           DOMAIN
    
    Дополнительные сведения:
            Privileges      -



    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    Тогда еще докучи,вывод -  (Get-WinEvent -FilterHashtable @{LogName="Security";ID=4726} | Select -First 1).ToXml()

    PS C:\Windows\system32> (Get-WinEvent -FilterHashtable @{LogName="Security";ID=4726} | Select -First 1).ToXml()
    <Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><Provider Name='Microsoft-Windows-Security
    -Auditing' Guid='{54849625-5478-4994-A5BA-3E3B0328C30D}'/><EventID>4726</EventID><Version>0</Version><Level>0</Level><T
    ask>13824</Task><Opcode>0</Opcode><Keywords>0x8020000000000000</Keywords><TimeCreated SystemTime='2013-03-14T10:20:23.6
    68594500Z'/><EventRecordID>26460895</EventRecordID><Correlation/><Execution ProcessID='576' ThreadID='832'/><Channel>Se
    curity</Channel><Computer>DOM1.DOMAIN.local</Computer><Security/></System><EventData><Data Name='TargetUserName'>TESTER121
    3</Data><Data Name='TargetDomainName'>DOMAIN</Data><Data Name='TargetSid'>S-1-5-21-4231654968-1618279416-2300147091-1337</
    Data><Data Name='SubjectUserSid'>S-1-5-21-4231654968-1618279416-2300147091-1603</Data><Data Name='SubjectUserName'>chubaka</Data><Data Name='SubjectDomainName'>DOMAIN</Data><Data Name='SubjectLogonId'>0x2f1a60523</Data><Data Name='Priv
    ilegeList'>-</Data></EventData></Event>


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    • Изменено MR.Minion 14 марта 2013 г. 10:52
    14 марта 2013 г. 10:51
  • Лично я проблем не вижу, все отрабатывает, как надо. Учетная запись от которой происходит запуск задания имеет право читать журнал Security? 

    14 марта 2013 г. 10:59
    Отвечающий
  • Лично я проблем не вижу, все отрабатывает, как надо. Учетная запись от которой происходит запуск задания имеет право читать журнал Security? 

    Да права есть.

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 11:02
  • Лично я проблем не вижу, все отрабатывает, как надо. Учетная запись от которой происходит запуск задания имеет право читать журнал Security? 

    Да права есть.

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    Что если закомментировать строку с Send-MailMessage, добавить вывод $BodyM и запустить скрипт в консоли?
    14 марта 2013 г. 11:06
    Отвечающий
  • Лично я проблем не вижу, все отрабатывает, как надо. Учетная запись от которой происходит запуск задания имеет право читать журнал Security? 

    Да права есть.

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    Что если закомментировать строку с Send-MailMessage, добавить вывод $BodyM и запустить скрипт в консоли?

    Удален пользователь в домене 
    
    
    
    Время: 14.03.2013 14:20:23
    
     Оператор: chubaka
    
    Имя пользователя:
    TESTER1213

    В консоли работает 



    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 11:10
  • Лично я проблем не вижу, все отрабатывает, как надо. Учетная запись от которой происходит запуск задания имеет право читать журнал Security? 

    Да права есть.

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    Что если закомментировать строку с Send-MailMessage, добавить вывод $BodyM и запустить скрипт в консоли?

    Удален пользователь в домене 
    
    
    
    Время: 14.03.2013 14:20:23
    
     Оператор: chubaka
    
    Имя пользователя:
    TESTER1213

    В консоли работает 



    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    Это от пользователя под которым планируется выполнять скрипт?
    • Помечено в качестве ответа MR.Minion 14 марта 2013 г. 11:32
    14 марта 2013 г. 11:17
    Отвечающий
  • Лично я проблем не вижу, все отрабатывает, как надо. Учетная запись от которой происходит запуск задания имеет право читать журнал Security? 

    Да права есть.

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    Что если закомментировать строку с Send-MailMessage, добавить вывод $BodyM и запустить скрипт в консоли?

    Удален пользователь в домене 
    
    
    
    Время: 14.03.2013 14:20:23
    
     Оператор: chubaka
    
    Имя пользователя:
    TESTER1213

    В консоли работает 



    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    Это от пользователя под которым планируется выполнять скрипт?
    Каюсь ,все заработало, спасибо!

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    • Изменено MR.Minion 14 марта 2013 г. 11:32
    14 марта 2013 г. 11:23