Extended script with app Registration certificates
This commit is contained in:
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
#region Global script settings and variables
|
#region Global script settings and variables
|
||||||
#General
|
#General
|
||||||
$Version = "v1.0"
|
$Version = "v1.1"
|
||||||
$logfilelocation = "$($MyInvocation.MyCommand.Path | Split-Path -Parent)\Logs"
|
$logfilelocation = "$($MyInvocation.MyCommand.Path | Split-Path -Parent)\Logs"
|
||||||
$logfilename = "$(Get-Date -Format yyyyMMddHHmmss)-Azure-App-Expiration-Report.log"
|
$logfilename = "$(Get-Date -Format yyyyMMddHHmmss)-Azure-App-Expiration-Report.log"
|
||||||
$summaryfilename = "$(Get-Date -Format yyyyMMddHHmmss)-Azure-App-Expiration-Summary.txt"
|
$summaryfilename = "$(Get-Date -Format yyyyMMddHHmmss)-Azure-App-Expiration-Summary.txt"
|
||||||
@@ -123,10 +123,10 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region execute script
|
#region execute script
|
||||||
#Collect all app information
|
#Collect all app Registration information
|
||||||
$AzureADApps = Get-MgApplication | Sort-Object DisplayName
|
$AzureADApps = Get-MgApplication -all | Sort-Object DisplayName
|
||||||
$AppCertificateDetails = @() #Initiate the array to store the collected information
|
|
||||||
$AppClientSecretsDetails = @() #Initiate the array to store the collected information
|
$AppClientSecretsDetails = @() #Initiate the array to store the collected information
|
||||||
|
$AppCertificateDetails = @() #Initiate the array to store the collected information
|
||||||
|
|
||||||
foreach ($App in $AzureADApps) {
|
foreach ($App in $AzureADApps) {
|
||||||
#Script should be extended to also include Certificates, preparations are already made.
|
#Script should be extended to also include Certificates, preparations are already made.
|
||||||
@@ -151,6 +151,27 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#Collect Client Secret details if available
|
||||||
|
if ($null -ne $App.KeyCredentials) {
|
||||||
|
foreach ($KeyCredential in $App.KeyCredentials) {
|
||||||
|
#Calculate remaining days
|
||||||
|
$RemainingDays = New-TimeSpan -Start $(Get-Date) -End $KeyCredential.EndDateTime
|
||||||
|
$DaysRemaining = $RemainingDays.Days
|
||||||
|
switch ($DaysRemaining) {
|
||||||
|
{$_ -le '0'} {$CalculatedStatus = "ERROR"}
|
||||||
|
{$_ -le $WarningDays} {$CalculatedStatus = "WARNING"}
|
||||||
|
Default {$CalculatedStatus = "OK"}
|
||||||
|
}
|
||||||
|
|
||||||
|
$AppCertificateDetails += [PSCustomObject]@{
|
||||||
|
AppDisplayName = $App.DisplayName
|
||||||
|
CertificateName = $KeyCredential.Displayname
|
||||||
|
Enddate = $KeyCredential.EndDateTime
|
||||||
|
DaysRemaining = $DaysRemaining
|
||||||
|
Status = $CalculatedStatus
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -183,7 +204,7 @@ $htmlReport = @"
|
|||||||
Script version: $Version <br/></p>
|
Script version: $Version <br/></p>
|
||||||
"@
|
"@
|
||||||
if ("" -ne $AppClientSecretsDetails) { $htmlReport += @"
|
if ("" -ne $AppClientSecretsDetails) { $htmlReport += @"
|
||||||
<h2>Application Secrets Overview</h2>
|
<h2>App Registration Secrets Overview</h2>
|
||||||
<table border='1'>
|
<table border='1'>
|
||||||
<tr>
|
<tr>
|
||||||
<th>App DisplayName</th>
|
<th>App DisplayName</th>
|
||||||
@@ -195,7 +216,6 @@ $htmlReport = @"
|
|||||||
"@
|
"@
|
||||||
foreach ($AppClientSecretsDetail in $AppClientSecretsDetails) {
|
foreach ($AppClientSecretsDetail in $AppClientSecretsDetails) {
|
||||||
$htmlReport += @"
|
$htmlReport += @"
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>$($AppClientSecretsDetail.AppDisplayName)</td>
|
<td>$($AppClientSecretsDetail.AppDisplayName)</td>
|
||||||
<td>$($AppClientSecretsDetail.SecretName)</td>
|
<td>$($AppClientSecretsDetail.SecretName)</td>
|
||||||
@@ -207,6 +227,34 @@ $htmlReport = @"
|
|||||||
default {"<td>$($AppClientSecretsDetail.Status)</td>"}
|
default {"<td>$($AppClientSecretsDetail.Status)</td>"}
|
||||||
} )
|
} )
|
||||||
</tr>
|
</tr>
|
||||||
|
"@
|
||||||
|
}
|
||||||
|
$htmlReport += "</table>"
|
||||||
|
}
|
||||||
|
if ("" -ne $AppCertificateDetails) { $htmlReport += @"
|
||||||
|
<h2>App Registration Certificates Overview</h2>
|
||||||
|
<table border='1'>
|
||||||
|
<tr>
|
||||||
|
<th>App DisplayName</th>
|
||||||
|
<th>Certificate Name</th>
|
||||||
|
<th>Enddate</th>
|
||||||
|
<th>Days Remaining</th>
|
||||||
|
<th>Status</th>
|
||||||
|
</tr>
|
||||||
|
"@
|
||||||
|
foreach ($AppCertificateDetail in $AppCertificateDetails) {
|
||||||
|
$htmlReport += @"
|
||||||
|
<tr>
|
||||||
|
<td>$($AppCertificateDetail.AppDisplayName)</td>
|
||||||
|
<td>$($AppCertificateDetail.CertificateName)</td>
|
||||||
|
<td>$($AppCertificateDetail.Enddate)</td>
|
||||||
|
<td>$($AppCertificateDetail.DaysRemaining)</td>
|
||||||
|
$(switch ($AppCertificateDetail.Status) {
|
||||||
|
'ERROR' {"<td bgcolor='red'>$($AppCertificateDetail.Status)</td>"}
|
||||||
|
'WARNING' {"<td bgcolor='Yellow'>$($AppCertificateDetail.Status)</td>"}
|
||||||
|
default {"<td>$($AppCertificateDetail.Status)</td>"}
|
||||||
|
} )
|
||||||
|
</tr>
|
||||||
"@
|
"@
|
||||||
}
|
}
|
||||||
$htmlReport += "</table>"
|
$htmlReport += "</table>"
|
||||||
@@ -250,5 +298,16 @@ $htmlReport = @"
|
|||||||
Write-Summary "Status: $($AppClientSecretsDetail.Status)"
|
Write-Summary "Status: $($AppClientSecretsDetail.Status)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ("" -ne $AppCertificateDetails) {
|
||||||
|
Write-Summary "App Client Secrets"
|
||||||
|
foreach ($AppCertificateDetail in $AppCertificateDetails) {
|
||||||
|
Write-Summary "******************"
|
||||||
|
Write-Summary "App DisplayName: $($AppCertificateDetail.AppDisplayName)"
|
||||||
|
Write-Summary "Certificate Name: $($AppCertificateDetail.CertificateName)"
|
||||||
|
Write-Summary "Enddate: $($AppCertificateDetail.Enddate)"
|
||||||
|
Write-Summary "Days Remaining: $($AppCertificateDetail.DaysRemaining)"
|
||||||
|
Write-Summary "Status: $($AppCertificateDetail.Status)"
|
||||||
|
}
|
||||||
|
}
|
||||||
Write-Summary "---------------------------"
|
Write-Summary "---------------------------"
|
||||||
#endregion
|
#endregion
|
||||||
Reference in New Issue
Block a user