Ha már ilyen szép táblázatokat tudunk készíteni, akkor jó lenne ezeket valamilyen még szebb formában megjeleníteni. Ezt szolgálja a PowerShell beépített HTML támogatása:
[7] PS C:\> Get-Service [a-b]* | ConvertTo-Html -Property Status,Name,DisplayName -head "Services on my computer" > service.html
37 . ábra Convert-HTML eredménye böngészőben
Természetesen itt a kimenetet nem a konzolon érdemes nézni, mert ott a html forráskódot látjuk, hanem érdemes átirányítani egy fájlba, amit a böngészőben lehet megnézni.
Látjuk, hogy szép táblázatos formátumot ad, kis ügyességgel lehet ezt még fokozni. Itt most még nem célom a teljes kód elmagyarázása, csak egy kis kedvcsinálóként írom ide, a PowerShell ISE szerkesztőből kimásolva:
Get-Service [a-b]* | ConvertTo-Html -Property Status,Name,DisplayName -head "Services on my computer" |
foreach-object {
if ($_ -like "*<td>Running</td>*")
{$_ -replace "<td>Running", "<td bgcolor=green>Running"}
elseif ($_ -like "*<td>Stopped</td>*")
{$_ -replace "<td>Stopped", "<td bgcolor=red>Stopped"}
else
{$_ -replace "<tr>", "<tr bgcolor=#C0C0C0>"}
} > C:\PowerShell\service.html
És a végeredmény:
38 . ábra Kicsit kibővített HTML kimenet a böngészőben
(Ha ezt fekete-fehér nyomtatásban nézik, akkor elmondom, hogy a futó szolgáltatások Status-a zöld, a leálltaké pedig piros hátterű.)
Ha csak a Convertto-Html saját lehetőségeit vesszük, akkor nézzünk egy nagyon felcsicsázott megoldást, ahol külön stílusdefinícióval szabályozom a táblázat kinézetét:
$header = @"
<style type="text/css">
TABLE {
border: thin solid #0000FF;
margin: 0px;
TABLE-LAYOUT: fixed;
FONT-SIZE: 100%;
WIDTH: 100%;
padding: 0px 0px 0px 0px;
border-collapse: collapse;
}
td {
border: thin solid #008080;
padding: 5px;
margin: 0px;
VERTICAL-ALIGN: TOP;
FONT-FAMILY: Tahoma;
}
th {
VERTICAL-ALIGN: TOP;
COLOR: green;
TEXT-ALIGN: left;
font-size: x-large;
background-color: #FFFF00;
border-bottom-style: dotted;
border-bottom-color: #FF0000;
}
</style>
"@
Get-Service [a-b]* |
ConvertTo-Html -Head $header `
-Title "Jelentés" -Property Status,Name,DisplayName `
-PreContent "<h1>Szolgáltatások a gépemen</h1>Készült: $(get-date)" `
-PostContent "Készítette: Soós Tibor" > service.html
És ennek kimenete:
39 . ábra A ConvertTo-HTML teljes pompájában