Question
Powershell et rapport HTML
- Damien Commenge
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 4
il y a 2 ans 7 mois - il y a 2 ans 7 mois #30726
par Damien Commenge
Powershell et rapport HTML a été créé par Damien Commenge
Bonjour, Je voudrais avoir votre avis pour la fabrication d'un script powershell qui sortirait un rapport HTML ensuite.Je vous montre un court extrait de ce que j'ai fais, et je suis tout ouvert pour les commentaires.
Voici les questions que je me pose principalement :-Est ce que ce ne serait pas plus simple de simplement faire "ma commande | select + les champs que je veux" plutôt qu'avoir une fonction à chaque fois qui reprend principalement le résultat d'une seule commande qui existe déjà.-Est ce que la fabrication du fichier vous parrait correcte pour pouvoir être maintenue ?-Je n'ai pas encore commenté mais c'est prévu.
#Requires -Modules DhcpServer
# =======================================================
$htmlReportPath = "c:\DNSReport.html"
function Get-DHCPServersSettings
{
$allDHCP = Get-DhcpServerInDC
$allDHCP | Foreach-Object {
[PSCustomObject]@{
Name = $_.DnsName
DBPath = (Get-DhcpServerDatabase -ComputerName $_.Dnsname).FileName
BackupPath = (Get-DhcpServerDatabase -ComputerName $_.Dnsname).BackupPath
Logging = (Get-DhcpServerDatabase -ComputerName $_.Dnsname).LoggingEnabled
AuditState = (Get-DhcpServerAuditLog -ComputerName $_.Dnsname).Enable
AuditPath = (Get-DhcpServerAuditLog -ComputerName $_.Dnsname).path
}
}
}
$DHCPServersSettings = Get-DHCPServersSettings
#region HTML
@"
<!DOCTYPE html>
<html>
<head>
<style>
table {
# border-collapse: collapse;
border-width: 1px; border-style: solid; border-color: black; border-collapse: collapse;
}
h2 {text-align:center}
th, td {
#padding: 8px;
#text-align: left;
#border-bottom: 1px solid #ddd;
border-width: 1px; padding: 3px; border-style: solid; border-color: black;
}
body {
font-family:"Vinci Sans Light";Font-Size:10pt
}
tr:hover{background-color:#f5f5f5}
</style>
</head>
<body>
<h1>DHCP Report</h1>
<h3>DHCP Servers Settings</h3>
$($DHCPServersSettings | ConvertTo-Html -Fragment)
</body>
"@ | Out-File -Encoding utf8 $htmlReportPath
#endregion
Invoke-Item $htmlReportPath
Voici les questions que je me pose principalement :-Est ce que ce ne serait pas plus simple de simplement faire "ma commande | select + les champs que je veux" plutôt qu'avoir une fonction à chaque fois qui reprend principalement le résultat d'une seule commande qui existe déjà.-Est ce que la fabrication du fichier vous parrait correcte pour pouvoir être maintenue ?-Je n'ai pas encore commenté mais c'est prévu.
Dernière édition: il y a 2 ans 7 mois par Damien Commenge.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6298
- Remerciements reçus 68
il y a 2 ans 7 mois #30746
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Powershell et rapport HTML
Salut,
>>Est ce que ce ne serait pas plus simple de simplement faire "ma commande | select + les champs que je veux" plutôt qu'avoir une fonction à chaque fois qui reprend principalement le résultat d'une seule commande qui existe déjà
Pas sûr de comprendre, tu peux déjà appeler une seul fois le cmdlet au lieu d'effectuer + appels identiques.
Quant à la génération d html, je ne vois rien de particuliers, le placer dans une fonction avec en paramètre $DHCPServersSettings serait préférable.
Attention si jamais tu places ce type de script dans un tâche le invoke-Item posera pb
>>Est ce que ce ne serait pas plus simple de simplement faire "ma commande | select + les champs que je veux" plutôt qu'avoir une fonction à chaque fois qui reprend principalement le résultat d'une seule commande qui existe déjà
Pas sûr de comprendre, tu peux déjà appeler une seul fois le cmdlet au lieu d'effectuer + appels identiques.
Quant à la génération d html, je ne vois rien de particuliers, le placer dans une fonction avec en paramètre $DHCPServersSettings serait préférable.
Attention si jamais tu places ce type de script dans un tâche le invoke-Item posera pb
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Damien Commenge
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 4
il y a 2 ans 7 mois #30756
par Damien Commenge
Réponse de Damien Commenge sur le sujet Powershell et rapport HTML
Bonjour,
Merci beaucoup pour ce retour.
Ce que je voulais indiquer, c'est qu'on peut soit faire ce que j'ai fais, soit faire par exemple :
Get-DhcpServerInDC | select Name ,dbpath | convertto-html ....
Le fait de créer un objet me permet de pouvoir réutiliser plus tard ma fonction si besoin, même si à ce jour j'ai des doutes...
Pour l'optimisation dans ma fonction, je modifie ça
Pour la partie HTML, je viens de tomber sur un module qui m'intéresse beaucoup : pswriterhtml. Je suis en attente d'un retour de leur part pour pouvoir aligner les titres des colones sur la gauche et savoir s'il est possible de ne pas utiliser toute la largeur de la page pour 1 ou 2 colonnes uniquement...
Je mets à jour mon code actuel et je viens poster ici le résultat ensuite de mon script d'audit DHCP.
Merci beaucoup pour ce retour.
Ce que je voulais indiquer, c'est qu'on peut soit faire ce que j'ai fais, soit faire par exemple :
Get-DhcpServerInDC | select Name ,dbpath | convertto-html ....
Le fait de créer un objet me permet de pouvoir réutiliser plus tard ma fonction si besoin, même si à ce jour j'ai des doutes...
Pour l'optimisation dans ma fonction, je modifie ça

Pour la partie HTML, je viens de tomber sur un module qui m'intéresse beaucoup : pswriterhtml. Je suis en attente d'un retour de leur part pour pouvoir aligner les titres des colones sur la gauche et savoir s'il est possible de ne pas utiliser toute la largeur de la page pour 1 ou 2 colonnes uniquement...
Je mets à jour mon code actuel et je viens poster ici le résultat ensuite de mon script d'audit DHCP.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6298
- Remerciements reçus 68
il y a 2 ans 7 mois #30758
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Powershell et rapport HTML
>>Le fait de créer un objet me permet de pouvoir réutiliser plus tard ma fonction si besoin, même si à ce jour j'ai des doutes...
C'est surtout que tu découples le traitement de création des données de celui de création du rapport. Si tu changes le format de ton rapport tu crées une autre fonction.
Autre outil interessant : github.com/iainbrighton/PScribo
C'est surtout que tu découples le traitement de création des données de celui de création du rapport. Si tu changes le format de ton rapport tu crées une autre fonction.
Autre outil interessant : github.com/iainbrighton/PScribo
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Damien Commenge
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 4
il y a 2 ans 7 mois #30760
par Damien Commenge
Réponse de Damien Commenge sur le sujet Powershell et rapport HTML
Entièrement d'accord pour la séparation collecte des données / sortie vers un fichier.
C'est une question que j'étais venu poser sur l'ancien forum il y a un peu plus d'un an et du coup je ne travaille plus que comme ca maintenant quand je dois programmer.
Je n'ai aucune "obligation" pour faire du powershell, j'en fais parce que ca me facilite le travail lorsque je dois faire des audits chez les clients notament.
C'est la raison pour laquelle je suis plutôt sur de la collecte d'information + sortie HTML ensuite.
La partie DHCP est nettement plus simple que la partie AD. Il y a beaucoup moins de chose à auditer et l'acces aux informations est tellement plus simple....
Pour l'outil que tu indiques, il a l'air quand même d'être bien plus complexe à prendre en main que pswriterhtml j'ai l'impression. Je veux juste voir si ce dernier peut être assez facilement malléable ou pas.
C'est une question que j'étais venu poser sur l'ancien forum il y a un peu plus d'un an et du coup je ne travaille plus que comme ca maintenant quand je dois programmer.
Je n'ai aucune "obligation" pour faire du powershell, j'en fais parce que ca me facilite le travail lorsque je dois faire des audits chez les clients notament.
C'est la raison pour laquelle je suis plutôt sur de la collecte d'information + sortie HTML ensuite.
La partie DHCP est nettement plus simple que la partie AD. Il y a beaucoup moins de chose à auditer et l'acces aux informations est tellement plus simple....
Pour l'outil que tu indiques, il a l'air quand même d'être bien plus complexe à prendre en main que pswriterhtml j'ai l'impression. Je veux juste voir si ce dernier peut être assez facilement malléable ou pas.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.078 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Powershell et rapport HTML