В настоящее время я работаю над сценарием, который отправит электронное письмо, как только срок действия сертификатов, привязанных к IIS моих веб-серверов, приблизится к сроку действия. У меня есть сценарий, чтобы отправить его по электронной почте. Все, что мне нужно знать, это как сравнить сертификаты, доступные в запросе хранилища, с сертификатами, которые используются в настоящее время. На данный момент вот что у меня есть:
$Date= (Get-Date)
$SMTPServer = "smtp.test.com"
$From = "[email protected]"
Import-Module WebAdministration
$Servers = @("WEBSERVER1", "WEBSERVER2")
$certificates = foreach($server in $Servers){
Invoke-Command -ComputerName $server -ScriptBlock { $CertAll = Get-ChildItem -Path Cert:\LocalMachine\My }
Invoke-Command -ComputerName $server -ScriptBlock { $CertInUse = Get-ChildItem -Path IIS:\SslBindings }
Invoke-Command -ComputerName $server -ScriptBlock { $CertSame = Compare-Object -ReferenceObject $CertAll -DifferenceObject $CertInUse -Property Thumbprint -IncludeEqual -ExcludeDifferent }
Invoke-Command -ComputerName $server -ScriptBlock { $cert = $CertSame | ForEach {Get-ChildItem -Path Cert:\LocalMachine\My\$($_.thumbprint)} |
Select-Object Subject, DaysUntilExpired, NotAfter, @{n='ExpireInDays';e={($_.notafter - ($Date)).Days}}}
}
$certificates | Sort DisplayName
Любая помощь и предложение будут оценены. Спасибо!