Мне нужно реализовать проверку истечения срока действия сертификата SSL на Windows Server. Суть в том, чтобы проверить, не истекает ли какой-нибудь сертификат SSL в течение следующих 30 дней. Если после выполнения сценария есть какой-либо вывод, Powershell должен преобразовать его в html и отправить преобразованный вывод на адрес электронной почты, указанный в сценарии. У меня нет большого опыта работы с Powershell, но я попытался написать сценарий, чтобы решить эту проблему. Одна за другой работают, и я получаю правильный вывод, но я застрял с преобразованием и отправкой его по электронной почте. Пожалуйста, не убивайте меня из-за этого глупого вопроса.
Windows Server 2016, IIS, Powershell 5.
$sslcheck = Get-ChildItem -Path Cert:\LocalMachine\My | Select-Object -Property PSComputerName, Subject, @{n=’ExpireInDays’;e={($_.notafter – (Get-Date)).Days}} | Where-Object {$_.ExpireInDays -lt 30}
if ("ExpireInDays" $sslcheck -Count > 0)
{
$sslcheck | ConvertTo-Html -body "<H2>@SRV1 SSL cert expires in 30 days</H2>"| Out-File c:\sslcheck.html
$body = [System.IO.File]::ReadAllText("c:\sslcheck.html")
$MailMessage = @{
To = email@email.com
From = email@email.com
Subject = "ALERT: SSL cert expires!"
Body = "$body"
Smtpserver = 'smtp.address.com'
}
Send-MailMessage @MailMessage -bodyashtml
}
else
{
exit
}