Question Powershell et rapport HTML

Plus d'informations
il y a 3 ans 4 jours - il y a 3 ans 4 jours #30726 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.
#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 3 ans 4 jours par Damien Commenge.

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

Plus d'informations
il y a 3 ans 3 jours #30746 par Laurent Dardenne
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

Tutoriels PowerShell

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

Plus d'informations
il y a 3 ans 3 jours #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.

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

Plus d'informations
il y a 3 ans 3 jours #30758 par Laurent Dardenne
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

Tutoriels PowerShell

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

Plus d'informations
il y a 3 ans 3 jours #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.

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

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