This script generate AD replication report and send the email to the specified email ID as below. Please change the email notification settings
#===================================================================#
# This Script (v1.0) is to monitor the Active Directory Replication #
# Created on 29-05-2023 by Ezhilkumar #
#===================================================================#
$a = repadmin /showrepl * /csv
$a | Out-File -FilePath "D:\Scripts\AD_ReplicationMonitor\ADReplicationreport.csv" -Encoding UTF8
$b = ConvertFrom-Csv -InputObject $a | Where-Object {($_.'number of failures' -ge "1") -or ($_.'Naming Context' -like "*server down*")}
if ($b -ne $null) {
$c = "Hi Team, `nThere are replication failures in Test.com. Please check the replication report and take necessary action immediately.`n`n"
$c += "<h2 style='color: #ff0000;'>Test.com Active Directory Replication Status: There are replication failures</h2>"
$c += "<table style='border-collapse: collapse; width: 100%; font-size: 12px;'>"
$c += "<colgroup><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'></colgroup>"
$c += "<tr><th colspan='10' style='background-color: #0000ff; border: 1px solid #dddddd; padding: 8px;'>Test.com Active Directory Replication Status</th></tr>"
$c += "<tr><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Destination DSA Site</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Destination DSA</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Naming Context</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Source DSA Site</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Source DSA</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Transport Type</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Number of Failures</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Last Failure Time</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Last Success Time</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Last Failure Status</th></tr>"
foreach ($entry in $b) {
$failureCount = $entry.'number of failures'
$c += "<tr"
if ($failureCount -ge "1") {
$c += " style='background-color: #ff0000;'"
}
$c += ">"
$c += "<td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Destination DSA Site')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Destination DSA')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Naming Context')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Source DSA Site')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Source DSA')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Transport Type')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Number of Failures')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Last Failure Time')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Last Success Time')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Last Failure Status')</td></tr>"
}
$c += "</table>"
} else {
$c = "Hi Team, `nAD replication is fine in Test.com domain, and there were no replication failures.`n`n"
$c += "<h2 style='color: #008000;'>Test.com Active Directory Replication Status: Success</h2>"
$c += "<table style='border-collapse: collapse; width: 100%; font-size: 12px;'>"
$c += "<colgroup><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'><col style='width: auto;'></colgroup>"
$c += "<tr><th colspan='10' style='background-color: #0000ff; border: 1px solid #dddddd; padding: 8px;'>Test.com Active Directory Replication Status</th></tr>"
$c += "<tr><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Destination DSA Site</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Destination DSA</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Naming Context</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Source DSA Site</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Source DSA</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Transport Type</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Number of Failures</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Last Failure Time</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Last Success Time</th><th style='background-color: #f1f1f1; border: 1px solid #dddddd; padding: 8px;'>Last Failure Status</th></tr>"
$csvData = Import-Csv -Path "D:\Scripts\AD_ReplicationMonitor\ADReplicationreport.csv"
foreach ($entry in $csvData) {
$c += "<tr><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Destination DSA Site')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Destination DSA')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Naming Context')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Source DSA Site')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Source DSA')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Transport Type')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Number of Failures')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Last Failure Time')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Last Success Time')</td><td style='border: 1px solid #dddddd; padding: 8px;'>$($entry.'Last Failure Status')</td></tr>"
}
$c += "</table>"
}
# Email notification settings
$sender = "Noreply_ADReplicationReport@test.com"
$recipients = "recipients@test.com"
$ccrecipients = "recipients@test.com"
$subject = "Test.com Active Directory Replication Status"
$body = "<html><body>$c</body></html>"
$attachmentPath = "D:\Scripts\AD_ReplicationMonitor\ADReplicationreport.csv"
$mailParams = @{
From = $sender
To = $recipients
Cc = $ccrecipients
Subject = $subject
Body = $body
BodyAsHtml = $true
SmtpServer = "mail.Test.com"
Attachments = $attachmentPath
}
# Send the email
Send-MailMessage @mailParams
No comments:
Post a Comment