Question Export html avec couleur :)

Plus d'informations
il y a 9 mois 3 semaines - il y a 9 mois 3 semaines #34008 par azalee
Réponse de azalee sur le sujet Export html avec couleur :)
Pourquoi l'export html conserve tous les keyID & CertificatID alors que dans le foreach on ne souhaite que les expirés jusqu'à j60.

L'export html ne prend pas en compte ce paramètre.

Est-il impossible de faire cela en export html !???

je viens de tomber sur un article Microsoft qui exporte en csv en prenant bien la date 
learn.microsoft.com/en-us/entra/identity...ith-expiring-secrets
 
Pièces jointes :
Dernière édition: il y a 9 mois 3 semaines par azalee.

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

Plus d'informations
il y a 9 mois 3 semaines #34010 par Fabien
Réponse de Fabien sur le sujet Export html avec couleur :)
Supprime le fichier HTML et ferme la fenêtre d'exécution PowerShell.
Relance le script et l'export html doit prendre en compte la boucle foreach et t'afficher uniquement jusqu'à 60 jours max. 

Tu peux essayer le script que tu as trouvé pour l'export en CSV.
Les utilisateur(s) suivant ont remercié: azalee

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

Plus d'informations
il y a 9 mois 3 semaines #34014 par azalee
Réponse de azalee sur le sujet Export html avec couleur :)
J'ai supprimé l'html, redémarré le PC, même testé sur d'autres Vms mais l'export et tjs identique avec la totalité des KeysID et certificats :( :(

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

Plus d'informations
il y a 9 mois 3 semaines #34015 par Fabien
Réponse de Fabien sur le sujet Export html avec couleur :)
C'est étrange 
Il faut tester la boucle "Foreach" de mise en forme conditionnelle pour voir ce qui ne va pas.
Si tu mets le script de départ que tu as donné, cela fonctionne correctement ou pas ?

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

Plus d'informations
il y a 9 mois 3 semaines - il y a 9 mois 3 semaines #34017 par azalee
Réponse de azalee sur le sujet Export html avec couleur :)
Bonjour,

Le Foreach fonctionne car il affiche bien seulement ceux entre expiré à J+60 (voir en PJ)

Par contre l'export html les prend tous :(



#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

        # Expiration le jour même ou inférieur --> Rouge
    if ($diffEnJours -lt 1) 
        {
            Write-Host "Le Client Secret de l'application : $($AADApp.DisplayName)"
            Write-Host "KeyID: $($PassCred.KeyID)"
            Write-Host "Expiré le : $($PassCred.EndDate)" -ForegroundColor Red
            Write-Host `r
            #Couleur Rouge
            $color = "#FF0000"
        }

        # Expiration entre 1 à 30 jours --> Magenta
    elseif ($diffEnJours -ge 1 -and $diffEnJours -le 30) 
        {
            Write-Host "Le Client Secret de l'application : $($AADApp.DisplayName)"
            Write-Host "KeyID: $($PassCred.KeyID)"
            Write-Host "Expire le : $($PassCred.EndDate)" -ForegroundColor Magenta
            Write-Host `r
            #Couleur Magenta
            $color = "#CC26FF"
        }

        # Expiration entre 31 à 60 jours --> Vert
    elseif ($diffEnJours -gt 31 -and $diffEnJours -le 60)
        {
            Write-Host "Le Client Secret de l'application : $($AADApp.DisplayName)"
            Write-Host "KeyID: $($PassCred.KeyID)"
            Write-Host "Expire le : $($PassCred.EndDate)" -ForegroundColor Green
            Write-Host `r
            #Couleur Verte   
            $color="#4CFF00"
        }

        #Sinon rien
    else{}

       
}

 #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

        # Expiration le jour même ou inférieur --> Rouge
    if ($diffEnJours -lt 1) 
        {
            Write-Host "Le Certificat de l'application : $($AADApp.DisplayName)"
            Write-Host "KeyID: $($KeyCred.KeyID)"
            Write-Host "Expiré le : $($KeyCred.EndDate)" -ForegroundColor Red
            Write-Host `r
            #Couleur Rouge
            $color = "#FF0000"
        }

        # Expiration entre 1 à 30 jours --> Magenta
    elseif ($diffEnJours -ge 1 -and $diffEnJours -le 30) 
        {
            Write-Host "Le Certificat de l'application : $($AADApp.DisplayName)"
            Write-Host "KeyID: $($KeyCred.KeyID)"
            Write-Host "Expire le : $($KeyCred.EndDate)" -ForegroundColor Magenta
            Write-Host `r
            #Couleur Magenta
            $color = "#CC26FF"
        }

        # Expiration entre 31 à 60 jours --> Vert
    elseif ($diffEnJours -gt 31 -and $diffEnJours -le 60) 
        {
            Write-Host "Le Certificat de l'application : $($AADApp.DisplayName)"
            Write-Host "KeyID: $($KeyCred.KeyID)"
            Write-Host "Expire le : $($KeyCred.EndDate)" -ForegroundColor Green
            Write-Host `r
            #Couleur Verte   
            $color="#4CFF00"
        }

        #Sinon rien
    else{}


        #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\00\Result.html"
 
Dernière édition: il y a 9 mois 3 semaines par azalee.

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

Plus d'informations
il y a 9 mois 3 semaines #34018 par Fabien
Réponse de Fabien sur le sujet Export html avec couleur :)
Bonjour Azalee,

Je vois l'erreur, la condition concerne uniquement la couleur et non l'affichage du tableau.
Je te redonne le code une fois que j'ai corrigé 

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

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