Я заметил, что многие домены не работают на Exchange 2013 из-за недопустимого подстановочного сертификата на их веб-сайтах.
Как я могу (как минимум) сканировать и тестировать этот тип сбоя?
Ниже - начало моего сценария, но я действительно ржавый в Powershell. Кто-нибудь думает, что это верное решение или есть лучшее?
$ErrorActionPreference = "Stop";
$domains = get-accepteddomain
foreach ($d in $domains)
{
Try
{
$url = "https://$d"
$wc = New-Object System.Net.WebClient
$wc.DownloadString($url)
}
Catch
{
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.Exception.ItemName
Send-MailMessage -From ExchangeAutodiscover@company.com -To chris@company.Com -Subject "Invalid SSL Certificate" -SmtpServer internalsmtp.nfp.com -Body "We failed to read file $FailedItem. The error message was $ErrorMessage for domain $url"
Break
}
}
Вот сценарий, который я придумал. Мне все еще нужен способ легко получить все активные первичные SMTP-адреса, но это только начало.
#This script tests the naked domain and autodiscover record for issues.
#often times a wildcard cert will cause a name mismatch, or the cert is invalid, expired, or revoked
$ErrorActionPreference = "Stop";
#todo, don't use accepted domains, only use the addresses listed as a primary on
# a user, because that is the only domain that counts for Autodiscover.
$domains = "a.com”, “b.com”, “b.com"
$errors = @{}
foreach ($d2 in $domains)
{
Try
{
$url = "https://$d2"
$url
$wc = New-Object System.Net.WebClient
$wc.DownloadString($url)
}
Catch
{
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.Exception.ItemName
$errors.Add($url, $_.Exception.Message)
}
Try
{
$url = "https://autodiscover.$d2"
$url
$wc = New-Object System.Net.WebClient
$wc.DownloadString($url)
}
Catch
{
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.Exception.ItemName
$errors.Add($url, $errormessage)
}
}
$sb = New-Object -TypeName "System.Text.StringBuilder";
foreach ($e in $errors.keys) {
$e2 = $errors.$e
#The remote name could not be resolved
#Could not establish trust relationship
$sb.AppendLine("$e had error @ $e2 " );
}
Send-MailMessage -From ExchangeAutodiscover@company.com -To chris@company.Com -Subject "Invalid SSL Certificate Report" -SmtpServer internalsmtp.company.com -Body $sb.tostring()