Advertisement
ecstrim

Active Directory - Email SRP Events

Apr 2nd, 2021
1,366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $EmailTo      = "you know what to put here"
  2. $EmailFrom    = "you know what to put here"
  3. $Subject      = "*** SRP REPORT ***"
  4. $SMTPServer   = "you know what to put here"
  5. $SMTPUsername = "you know what to put here"
  6. $SMTPPassword = "you know what to put here"
  7.  
  8. function buildBodyItemTable($Item) {
  9.     $BodyItem = @"
  10. <table padding="1" spacing="1" style="">
  11.    <tr><td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">EventID:</td> <td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">$($Item.Id)</td></tr>
  12.     <tr><td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">TimeCreated:</td> <td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">$($Item.TimeCreated)</td></tr>
  13.     <tr><td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">Computer:</td> <td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">$($Item.Computer)</td></tr>
  14.     <tr><td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">Username:</td> <td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">$($Item.Username)</td></tr>
  15.     <tr><td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">UPN:</td> <td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">$($Item.UPN)</td></tr>
  16.     <tr><td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">DN:</td> <td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">$($Item.DistinguishedName)</td></tr>
  17.     <tr><td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">Message:</td> <td style="background-color: #e6e6e6; padding: 5px 5px 5px 5px;">$($Item.Message)</td></tr>
  18. </tr>
  19. </table>
  20.  
  21. <div><hr size=\"1\"></div>
  22.  
  23. "@
  24.  
  25.    return $BodyItem
  26. }
  27.  
  28. $Events = Get-WinEvent -Oldest -MaxEvents 3 -FilterHashTable @{LogName = 'Application'; ProviderName = 'Microsoft-Windows-SoftwareRestrictionPolicies'} `
  29.            | Select-Object *, @{Name = 'ADUser'; Expression = {Get-ADUser -Identity $_.UserId.Value | Select-Object samaccountname, userprincipalname, DistinguishedName}} `
  30.            | Select-Object Id, MachineName, TimeCreated, Message, `
  31.            @{Name='Username';Expression={$_.ADUser.samaccountname}}, `
  32.            @{Name='UPN';Expression={$_.ADUser.userprincipalname}}, `
  33.            @{Name='DistinguishedName';Expression={$_.ADUser.DistinguishedName}}
  34.  
  35. $Items = @()
  36. $EmailBody = "<div>"
  37. foreach ($Event in $Events) {
  38.    $i = New-Object PSObject -Property ([Ordered] @{
  39.        'Id' = $Event.Id
  40.        'Computer' = $Event.MachineName
  41.        'TimeCreated' = Get-Date -Date $Event.TimeCreated -format "yyyy-MM-dd HH:mm"
  42.        'Username' = $Event.Username
  43.        'UPN' = $Event.UPN
  44.        'DistinguishedName' = $Event.DistinguishedName
  45.        'Message' = $Event.Message.TrimEnd('.')
  46.       })
  47.  
  48.    $Items += $i
  49.  
  50.    $EmailBody += buildBodyItemTable($i)
  51. }
  52. $EmailBody += "</div>"
  53.  
  54. $SMTPMessage = New-Object System.Net.Mail.MailMessage
  55. $SMTPMessage.From       = ($EmailFrom)
  56. $SMTPMessage.To.Add($EmailTo)
  57. $SMTPMessage.Subject    = $Subject
  58. $SMTPMessage.IsBodyHTML = $true
  59. $SMTPMessage.Body       = $EmailBody
  60. $SMTPClient             = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
  61. $SMTPClient.EnableSsl   = $true
  62. $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($SMTPUsername, $SMTPPassword);
  63. $SMTPClient.Send($SMTPMessage)
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement