Question Export html avec couleur :)

Plus d'informations
il y a 8 mois 1 semaine #33988 par azalee
Export html avec couleur :) a été créé par azalee
Bonjour,

J'ai trouvé un script magnifique :) sur l'export des dates de péremption des certificats azure. (voir résultat en PJ)

Je souheterai que le résultat soit exporté dans un fichier, je pense *.html, en gardant les couleur concernant les dates d'expiration.

Merci d'avance pour votre aide :) :) :)

voici le script : 

Connect-AzureAD
$AADAppsColl = Get-AzureADApplication -All:$true
foreach($AADApps in $AADAppsColl) {
$AppID = $AADApps.AppID
$AADApp = Get-AzureADApplication -Filter "AppID eq '$AppID'"
$PassCreds = $AADApp.PasswordCredentials
if ($null -ne $PassCreds) {
foreach($PassCred in $PassCreds) {
if($PassCred.EndDate -gt (Get-Date).AddDays(30) -and $PassCred.EndDate -le (Get-Date).AddDays(90)){
Write-Host "AzureAD Application Name: $($AADApp.DisplayName)"
Write-Host "KeyID: $($PassCred.KeyID)"
Write-Host "Expires: $($PassCred.EndDate)" -ForegroundColor Green
Write-Host `r
}
if($PassCred.EndDate -gt (Get-Date) -and $PassCred.EndDate -le (Get-Date).AddDays(30)) {
Write-Host "AzureAD Application Name: $($AADApp.DisplayName)"
Write-Host "KeyID: $($PassCred.KeyID)"
Write-Host "Expires: $($PassCred.EndDate)" -ForegroundColor Orange
Write-Host `r
}
if($PassCred.EndDate -le (Get-Date)) {
Write-Host "AzureAD Application Name: $($AADApp.DisplayName)"
Write-Host "KeyID: $($PassCred.KeyID)"
Write-Host "Expired: $($PassCred.EndDate)" -ForegroundColor Red
Write-Host `r
}
}
}
$KeyCreds = $AADApp.KeyCredentials
if ($null -ne $KeyCreds) {
foreach($KeyCred in $KeyCreds) {
if($KeyCred.EndDate -gt (Get-Date).AddDays(30) -and $KeyCred.EndDate -le (Get-Date).AddDays(90)){
Write-Host "AzureAD Application Name: $($AADApp.DisplayName)"
Write-Host "Certificate ID: $($KeyCred.KeyID)"
Write-Host "Expires: $($KeyCred.EndDate)" -ForegroundColor Green
Write-Host `r
}
if($KeyCred.EndDate -gt (Get-Date) -and $KeyCred.EndDate -le (Get-Date).AddDays(30)) {
Write-Host "AzureAD Application Name: $($AADApp.DisplayName)"
Write-Host "Certificate ID: $($KeyCred.KeyID)"
Write-Host "Expires: $($KeyCred.EndDate)" -ForegroundColor Orange
Write-Host `r
}
if($KeyCred.EndDate -le (Get-Date)) {
Write-Host "AzureAD Application Name: $($AADApp.DisplayName)"
Write-Host "Certificate ID: $($KeyCred.KeyID)"
Write-Host "Expired: $($KeyCred.EndDate)" -ForegroundColor Red
Write-Host `r
}
}
}
}
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 mois 6 jours - il y a 8 mois 6 jours #33990 par Fabien
Réponse de Fabien sur le sujet Export html avec couleur :)
Bonjour Azalee,

Je suis en train de transformer ton code pour l'export en HTML avec la conservation des couleurs.
Je t'ai mis un exemple de l'export en pièce jointe.
Cela te convient ?

PS: N'oublie pas de présenter dans la section   Qui êtes-vous PowerShelleurs ?

 
Pièces jointes :
Dernière édition: il y a 8 mois 6 jours par Fabien.
Les utilisateur(s) suivant ont remercié: azalee

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 mois 6 jours #33991 par Fabien
Réponse de Fabien sur le sujet Export html avec couleur :)
Azalee,

Voici le code Powershell pour exporter tes résultats en HMTL.
J'ai essayé d'adapter avec le code que tu as mis.
Je reste dispo si tu as besoin d'aide 
#Modèle HTML du corps du mail
$HTML = @"
<body style="background-color: #181a1b; color: #FFFFFF;">
<h1 style="font-size: large;"> Dates de péremption des certificats Azure du VarReportDate</h1>

VarKeyID

VarCertificateID

</body>
"@


####### KeyID

#Connexion Azure
Connect-AzureAD
#Récupération des applications Azure
$AADAppsColl = Get-AzureADApplication -All:$true
#Traitement pour chaque application
foreach($AADApps in $AADAppsColl) {
$AppID = $AADApps.AppID
$AADApp = Get-AzureADApplication -Filter "AppID eq '$AppID'"

$PassCreds = $AADApp.PasswordCredentials
if ($null -ne $PassCreds) {
foreach($PassCred in $PassCreds) {

    # Récupérer la date du jour
    $dateDuJour = Get-Date

    # Calculer la différence en jours entre la date d'exipration et la date du jour
    $diffEnJours = ($PassCred.EndDate - $dateDuJour).Days

    # Appliquer la mise en forme conditionnelle
    if ($diffEnJours -gt 30) {
        #Couleur Verte   
        $color="#4CFF00"
    }
    elseif ($diffEnJours -ge 1 -and $diffEnJours -le 30) {
        #Couleur Magenta
        $color = "#CC26FF"
    }
    else {
        #Couleur Rouge
        $color = "#FF0000"
    }


        #Incrémentation du tableau KeyID
           $KeyID +=   @"

<table style="border-collapse: collapse; border: 1px solid #FFFFFF;" cellpadding="5">
   <td bgcolor="#0054BC" style="border-collapse: collapse; border: 1px solid #FFFFFF;">Azure Application Name</td>
   <td style="border-collapse: collapse; border: 1px solid #FFFFFF;">$($AADApp.DisplayName)</td>
  <tr>
   <td bgcolor="#0054BC" style="border-collapse: collapse; border: 1px solid #FFFFFF;">KeyID</td>
   <td style="border-collapse: collapse; border: 1px solid #FFFFFF;">$($PassCred.KeyID)</td>
  <tr>
   <td bgcolor="#0054BC" style="border-collapse: collapse; border: 1px solid #FFFFFF;">Expire</td>
   <td style="border-collapse: collapse; border: 1px solid #FFFFFF; color: $color">$($PassCred.EndDate)</td>
  <tr>
</table>

<br>

"@
}
}


####### CertificateID

$KeyCreds = $AADApp.KeyCredentials
if ($null -ne $KeyCreds) {
foreach($KeyCred in $KeyCreds) {

    # Récupérer la date du jour
    $dateDuJour = Get-Date

    # Calculer la différence en jours entre la date d'exipration et la date du jour
    $diffEnJours = ($KeyCred.EndDate - $dateDuJour).Days

    # Appliquer la mise en forme conditionnelle
    if ($diffEnJours -gt 30) {
        #Couleur Verte   
        $color="#4CFF00"
    }
    elseif ($diffEnJours -ge 1 -and $diffEnJours -le 30) {
        #Couleur Magenta
        $color = "#CC26FF"
    }
    else {
        #Couleur Rouge
        $color = "#FF0000"
    }


        #Incrémentation du tableau CertificateID
           $CertificateID +=   @"

<table style="border-collapse: collapse; border: 1px solid #FFFFFF;" cellpadding="5">
   <td bgcolor="#0054BC" style="border-collapse: collapse; border: 1px solid #FFFFFF;">Azure Application Name</td>
   <td style="border-collapse: collapse; border: 1px solid #FFFFFF;">$($AADApp.DisplayName)</td>
  <tr>
   <td bgcolor="#0054BC" style="border-collapse: collapse; border: 1px solid #FFFFFF;">Certificate ID</td>
   <td style="border-collapse: collapse; border: 1px solid #FFFFFF;">$($KeyCred.KeyID)</td>
  <tr>
   <td bgcolor="#0054BC" style="border-collapse: collapse; border: 1px solid #FFFFFF;">Expire</td>
   <td style="border-collapse: collapse; border: 1px solid #FFFFFF; color: $color">$($KeyCred.EndDate)</td>
  <tr>
</table>

<br>

"@
}
}
}
    
#Récupération de la date du jour
$ReportDate = Get-Date -Format "dd/MM/yyyy"

#Remplace les variables suivantes dans le modèle HTML : VarReportDate, VarTableau
$HTML= $HTML.Replace("VarReportDate",$ReportDate)
$HTML= $HTML.Replace("VarKeyID",$KeyID)
$HTML= $HTML.Replace("VarCertificateID",$CertificateID)

#Generate file html (Optional)
Add-Type -AssemblyName System.Web
[System.Web.HttpUtility]::HtmlDecode($html) | Out-File "C:\Temp\Result.html"
Les utilisateur(s) suivant ont remercié: azalee

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 mois 6 jours #33992 par azalee
Réponse de azalee sur le sujet Export html avec couleur :)
Merci mon dieu 

Quelle maîtrise 

le résultat est top....je viens de le tester, par contre comment faire pour n'afficher au maximum à 60 jours car là ceux qui expirent en 2025.....pas besoin de les avoir.

J'imagine que c'est là qu'il faut le définir mais pas réussi..... 

    # Calculer la différence en jours entre la date d'expiration et la date du jour
    $diffEnJours = ($PassCred.EndDate - $dateDuJour).Days

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 mois 6 jours #33995 par Fabien
Réponse de Fabien sur le sujet Export html avec couleur :)
Azalee,

Pour affiner l'affichage des couleurs en fonction de la date d'expiration, il faut changer dans la partie "#Appliquer la mise en forme conditionnelle".
Voici un bout de code pour vérifier et affiner tes besoins :
   # Récupérer la date du jour
    $dateDuJour = Get-Date
    #Date d'exemple
    $dateEnd = Get-Date "11/02/2024"

    # Calculer la différence en jours entre la date d'exipration et la date du jour
    $diffEnJours = ($dateEnd - $dateDuJour).Days 
    
    
    
    # Appliquer la mise en forme conditionnelle
    if ($diffEnJours -gt 30 -and $diffEnJours -le 90) {
        #Couleur Verte   
        $color="#4CFF00"
    }
    elseif ($diffEnJours -ge 1 -and $diffEnJours -le 30) {
        #Couleur Magenta
        $color = "#CC26FF"
    }
    elseif ($diffEnJours -le 1) {
        #Couleur Rouge
        $color = "#FF0000"
    }
    else{}

    #Affichage du code couleur en Hexa
    $color
Les utilisateur(s) suivant ont remercié: azalee

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 mois 5 jours #33996 par azalee
Réponse de azalee sur le sujet Export html avec couleur :)
Merci encore pour votre réactivité.
Bon, je n'arrive pas à avoir dans l'export html seulement ceux qui expirent ou ont expiré à j+60jours.

en repartant de votre script d'origine, est-il possible sinon de classer (car j'ai plus de 150 résultats) l'export html par date d'expiration du plus récent au plus ancien

Merci d'avance et désolé pour ma nullité :(
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.091 secondes
Propulsé par Kunena