
<sampler name="WinCertCheck">
	<sampleInterval>
		<data>43200</data>
	</sampleInterval>
	<plugin>
		<toolkit>
			<samplerScript>
				<data>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe  -executionpolicy bypass  -file &quot;CertCheck.ps1&quot;</data>
			</samplerScript>
			<script>
				<contents>
					<data>$minimumCertAgeDays = 80000
$timeoutMilliseconds = 5000
$urls = @(
 &quot;https://www.itrsgroup.com&quot;,
 &quot;https://support.itrsgroup.com&quot;,
 &quot;https://www.example.com&quot;
 )
#disabling the cert validation check. This is what makes this whole thing work with invalid certs...
 [Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
Write-Host Host`,Name`,Issuer`,Status`,Expires On`,Days Left -f Green
foreach ($url in $urls)
{
#Write-Host `n Checking $url -f Green
 $req = [Net.HttpWebRequest]::Create($url)
 $req.Timeout = $timeoutMilliseconds
try {$req.GetResponse() | Out-Null} catch {}
if ($req.ServicePoint.Certificate -ne $null)
    {
        [datetime]$expiration = $req.ServicePoint.Certificate.GetExpirationDateString()
        [int]$certExpiresIn = ($expiration - $(get-date)).Days
        $certName = $req.ServicePoint.Certificate.GetName()
        $certPublicKeyString = $req.ServicePoint.Certificate.GetPublicKeyString()
        $certSerialNumber = $req.ServicePoint.Certificate.GetSerialNumberString()
        $certThumbprint = $req.ServicePoint.Certificate.GetCertHashString()
        $certEffectiveDate = $req.ServicePoint.Certificate.GetEffectiveDateString()
        $certIssuer = $req.ServicePoint.Certificate.GetIssuerName() #need to parse out the commas
        $certType = $req.ServicePoint.Certificate.GetType()
        $expirationString = &quot;{0:dd MMMM yyyy hh:mm:ss}&quot; -f $expiration #display date in full
        if ($certExpiresIn -gt 0)
            {  $certStat = &quot;Valid&quot;  }
        else
            {  $certStat = &quot;Invalid&quot; }
        Write-Host $url`,($certName -replace &quot;,&quot; , &quot;\,&quot; )`,($certIssuer -replace &quot;,&quot; , &quot;\,&quot; )`,$certStat`,$expirationString`,$certExpiresIn
    }
}</data>
				</contents>
				<filename>
					<data>CertCheck.ps1</data>
				</filename>
			</script>
		</toolkit>
	</plugin>
</sampler>