Question
Export html avec couleur :)
- Fabien
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 140
- Remerciements reçus 20
il y a 7 mois 3 semaines - il y a 7 mois 3 semaines #34000
par Fabien
Réponse de Fabien sur le sujet Export html avec couleur :)
Bonjour Azalee,
J'ai apporté des modifications pour afficher en vert entre +30 à +60 jours; Magenta entre 1 à 30 jours; Rouge le même jour ou inférieur; Tout le reste ne pas afficher.
J'ai apporté des modifications pour afficher en vert entre +30 à +60 jours; Magenta entre 1 à 30 jours; Rouge le même jour ou inférieur; Tout le reste ne pas afficher.
#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).TotalDays
#Arrondir le résultat
$diffEnJours = [Math]::Round($diffEnJours)
# Appliquer la mise en forme conditionnelle
#Expiration entre 30 à 60 jours --> Vert
if ($diffEnJours -gt 30 -and $diffEnJours -le 60) {
#Couleur Verte
$color="#4CFF00"
}
#Expiration entre 1 à 30 jours --> Magenta
elseif ($diffEnJours -ge 1 -and $diffEnJours -le 30) {
#Couleur Magenta
$color = "#CC26FF"
}
#Expiration le jour même ou inférieur --> Rouge
elseif ($diffEnJours -lt 1) {
#Couleur Rouge
$color = "#FF0000"
}
#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
#Arrondir le résultat
$diffEnJours = [Math]::Round($diffEnJours)
# Appliquer la mise en forme conditionnelle
#Expiration entre 30 à 60 jours --> Vert
if ($diffEnJours -gt 30 -and $diffEnJours -le 60) {
#Couleur Verte
$color="#4CFF00"
}
#Expiration entre 1 à 30 jours --> Magenta
elseif ($diffEnJours -ge 1 -and $diffEnJours -le 30) {
#Couleur Magenta
$color = "#CC26FF"
}
#Expiration le jour même ou inférieur --> Rouge
elseif ($diffEnJours -lt 1) {
#Couleur Rouge
$color = "#FF0000"
}
#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\Result.html"
Dernière édition: il y a 7 mois 3 semaines par Fabien.
Les utilisateur(s) suivant ont remercié: azalee
Connexion ou Créer un compte pour participer à la conversation.
- Fabien
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 140
- Remerciements reçus 20
il y a 7 mois 3 semaines #34002
par Fabien
Réponse de Fabien sur le sujet Export html avec couleur :)
Pense à te présenter dans la section
Présentation
stp
Connexion ou Créer un compte pour participer à la conversation.
- azalee
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 2
il y a 7 mois 3 semaines #34004
par azalee
Réponse de azalee sur le sujet Export html avec couleur :)
C'est fait
Les utilisateur(s) suivant ont remercié: Fabien
Connexion ou Créer un compte pour participer à la conversation.
- azalee
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 2
il y a 7 mois 3 semaines #34005
par azalee
Réponse de azalee sur le sujet Export html avec couleur :)
Bonjour Fabien D.,
merci encore, je viens de tester le nouveau code, mais le résultat ne semble plus correspondre.
Dans l'export, j'ai toujours tous les résultats et les code couleurs n'ont plus l'air de fonctionner (voir PJ)
J'ai l'impression que dans l'export html, il ne tient pas compte du foreach pour ne garder que les résultats souhaité (en vert entre +30 à +60 jours; Magenta entre 1 à 30 jours; Rouge le même jour ou inférieur ; Tout le reste ne pas afficher) car il affiche quand même tout le reste.
j'ai testé le code sur 3 vm différentes, MAJ le module AzureAD, reboot pour purger le cache powershell......et aussi Clear Variables without restarting ==> Remove-Variable * -ErrorAction SilentlyContinue; Remove-Module *; $error.Clear();
Si plus simple de classer l'export html par date d'expiration, cela me conviendrait également
Merci d'avance
merci encore, je viens de tester le nouveau code, mais le résultat ne semble plus correspondre.
Dans l'export, j'ai toujours tous les résultats et les code couleurs n'ont plus l'air de fonctionner (voir PJ)
J'ai l'impression que dans l'export html, il ne tient pas compte du foreach pour ne garder que les résultats souhaité (en vert entre +30 à +60 jours; Magenta entre 1 à 30 jours; Rouge le même jour ou inférieur ; Tout le reste ne pas afficher) car il affiche quand même tout le reste.
j'ai testé le code sur 3 vm différentes, MAJ le module AzureAD, reboot pour purger le cache powershell......et aussi Clear Variables without restarting ==> Remove-Variable * -ErrorAction SilentlyContinue; Remove-Module *; $error.Clear();
Si plus simple de classer l'export html par date d'expiration, cela me conviendrait également
Merci d'avance
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Fabien
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 140
- Remerciements reçus 20
il y a 7 mois 3 semaines #34006
par Fabien
Réponse de Fabien sur le sujet Export html avec couleur :)
Azalee,
Voici un petit retour arrière du script :
Voici un petit retour arrière du script :
#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 entre 30 à 60 jours --> Vert
if ($diffEnJours -gt 30 -and $diffEnJours -le 60) {
#Couleur Verte
$color="#4CFF00"
}
#Expiration entre 1 à 30 jours --> Magenta
elseif ($diffEnJours -ge 1 -and $diffEnJours -le 30) {
#Couleur Magenta
$color = "#CC26FF"
}
#Expiration le jour même ou inférieur --> Rouge
elseif ($diffEnJours -lt 1) {
#Couleur Rouge
$color = "#FF0000"
}
#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
# Appliquer la mise en forme conditionnelle
#Expiration entre 30 à 60 jours --> Vert
if ($diffEnJours -gt 30 -and $diffEnJours -le 60) {
#Couleur Verte
$color="#4CFF00"
}
#Expiration entre 1 à 30 jours --> Magenta
elseif ($diffEnJours -ge 1 -and $diffEnJours -le 30) {
#Couleur Magenta
$color = "#CC26FF"
}
#Expiration le jour même ou inférieur --> Rouge
elseif ($diffEnJours -lt 1) {
#Couleur Rouge
$color = "#FF0000"
}
#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\Result.html"
Connexion ou Créer un compte pour participer à la conversation.
- Fabien
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 140
- Remerciements reçus 20
il y a 7 mois 3 semaines #34007
par Fabien
Réponse de Fabien sur le sujet Export html avec couleur :)
Si tu veux trier les résultats, cela risque d'être compliqué.
Le tri pourra être fait sur les tableaux "KeyID" et ensuite sur les tableaux "CertificateID".
Ce qui va t'afficher sur ta page Web, tous les tableaux "KeyID" et à la suite tous les tableaux "CertificateID".
Le problème majeur qui va se poser est le lien entre le nom de l'application et le KeyID car ce sont deux variables différentes.
Le tri pourra être fait sur les tableaux "KeyID" et ensuite sur les tableaux "CertificateID".
Ce qui va t'afficher sur ta page Web, tous les tableaux "KeyID" et à la suite tous les tableaux "CertificateID".
Le problème majeur qui va se poser est le lien entre le nom de l'application et le KeyID car ce sont deux variables différentes.
Les utilisateur(s) suivant ont remercié: azalee
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.133 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Export html avec couleur :)