#Connect-AzAccount $fileName = ".\azure_appservice_certificates.csv" $subscriptions = Get-AzSubscription class CertificateCheck { [string] $SubscriptionId = "" [string] $CertificateId = "" [string] $ResourceGroupName = "" [string] $SubjectName = "" [string] $ThumbPrint = "" [DateTime] $ExpirationDate [double] $TotalDays [string] $Comment = "" } [CertificateCheck[]]$Result = @() $StartDate=(GET-DATE) foreach ($subscription in $subscriptions) { Set-AzContext -SubscriptionId $subscription.Id $certs = Get-AzResource -ResourceType Microsoft.Web/certificates foreach ($cert in $certs) { $id = $cert.Id $thumbprint = ($cert.Name.Split([char]"#", [char]"-"))[0] Write-Host "Certificate $id" [CertificateCheck] $certificateCheck = [CertificateCheck]::new() $certificateCheck.SubscriptionId = $subscription.Id $certificateCheck.CertificateId = $id $certificateCheck.ThumbPrint = $thumbprint $certificateCheck.ResourceGroupName = $cert.ResourceGroupName $Result += $certificateCheck } } $Result | Export-Csv -Path $fileName -NoTypeInformation -Force $fileName = ".\azure_appservice_certificates_1.csv" foreach ($certificateCheck in $Result) { try { Set-AzContext -SubscriptionId $certificateCheck.SubscriptionId $thumbprint = $certificateCheck.ThumbPrint Write-Host "thumbprint: $thumbprint" $certificate = Get-AzWebAppCertificate -ResourceGroupName $certificateCheck.ResourceGroupName -Thumbprint $thumbprint -debug -verbose if ($null -eq $certificate) { $certificateCheck.Comment = "Could not find certificate" } else { try { $subjectname = $certificate.SubjectName $certificateCheck.SubjectName = $subjectname Write-Host "Subject name: $subjectname" $EndDate=[datetime]$certificate.ExpirationDate $certificateCheck.ExpirationDate = $EndDate $span = NEW-TIMESPAN –Start $StartDate –End $EndDate $certificateCheck.TotalDays = $span.TotalDays } catch { $certificateCheck.Comment = "Could not find expiry for certificate" } } } catch { $certificateCheck.Comment = "Could not load certificate" } } $Result | Export-Csv -Path $fileName -NoTypeInformation -Force $Result | ft