The script emails the list of scheduled tasks that are configured to run on a specific instance of Adaxes service. To execute the script, create a scheduled task configured for the Domain-DNS object type and add a managed domain to the Activity Scope of the task.
Parameters:
- $ownerServiceDnsHostName - Specifies the fully-qualified domain name (FQDN) of the Adaxes service where a scheduled task should be configured to run to be included into the email notification.
- $to - Specifies the email notification recipient.
- $subject - Specifies the email notification subject.
- $reportHeader - Specifies the report header.
- $reportFooter - Specifies the report footer.
PowerShell
$ownerServiceDnsHostName = "Server.domain.com" # TODO: modify me
# E-mail settings
$to = "recipient@domain.com" # TODO: modify me
$subject = "Scheduled Task report" # TODO: modify me
$reportHeader = "<h2>Scheduled Task report</h2>"
$reportFooter = "<hr /><p><i>Please do not reply to this e-mail, it has been sent to you for notification purposes only.</i></p>" # TODO: modify me
# Search configuration objects
$scheduledTasksContainerPath = $Context.GetWellKnownContainerPath("ScheduledTasks")
$searcher = $Context.BindToObject($scheduledTasksContainerPath)
$searcher.SearchFilter = "(&(objectCategory=adm-ScheduledTask)(adm-SyncRootOwnerDnsHostName=$ownerServiceDnsHostName))"
$searcher.SearchScope = "ADS_SCOPE_SUBTREE"
$searcher.PageSize = 500
try
{
$searchResultIterator = $searcher.ExecuteSearch()
$searchResults = $searchResultIterator.FetchAll()
$htmlList = New-Object "System.Text.StringBuilder"
[void]$htmlList.Append("<ol>")
$scheduledTasksContainerPathObj = New-Object Softerra.Adaxes.Adsi.AdsPath $scheduledTasksContainerPath
foreach ($searchResult in $searchResults)
{
$taskPath = $searchResult.AdsPath.ToString()
$taskPath = $taskPath.Replace($scheduledTasksContainerPathObj.DN, "")
$taskName = $Context.GetDisplayNameFromAdsPath($taskPath.Trim(","))
[void]$htmlList.Append("<li>$taskName</li>")
}
[void]$htmlList.Append("</ol>")
}
finally
{
# Release resources
if ($searchResultIterator) { $searchResultIterator.Dispose() }
}
# Build html
$html = New-Object "System.Text.StringBuilder"
$html.Append($reportHeader)
$html.Append($htmlList.ToString())
$html.Append($reportFooter)
# Send mail
$Context.SendMail($to, $subject, $NULL, $html.ToString())