Condividi tramite


ConvertTo-Html

Converte gli oggetti di Microsoft .NET Framework in formato HTML in modo da poter essere visualizzati in un Web browser.

Sintassi

ConvertTo-Html
              [-InputObject <PSObject>]
              [[-Property] <Object[]>]
              [[-Body] <String[]>]
              [[-Head] <String[]>]
              [[-Title] <String>]
              [-As <String>]
              [-CssUri <Uri>]
              [-PostContent <String[]>]
              [-PreContent <String[]>]
              [<CommonParameters>]
ConvertTo-Html
              [-InputObject <PSObject>]
              [[-Property] <Object[]>]
              [-As <String>]
              [-Fragment]
              [-PostContent <String[]>]
              [-PreContent <String[]>]
              [<CommonParameters>]

Descrizione

Il cmdlet ConvertTo-Html converte gli oggetti .NET Framework in HTML che possono essere visualizzati in un Web browser. È possibile usare questo cmdlet per visualizzare l'output di un comando in una pagina Web.

È possibile utilizzare i parametri di ConvertTo-Html per selezionare le proprietà dell'oggetto, per specificare una tabella o un formato elenco, per specificare il titolo della pagina HTML, per aggiungere testo prima e dopo l'oggetto e per restituire solo la tabella o il frammento di elenco, anziché una pagina DTD rigorosa.

Quando si inviano più oggetti a ConvertTo-Html, Windows PowerShell crea la tabella o un elenco in base alle proprietà del primo oggetto inviato. Se gli oggetti rimanenti non hanno una delle proprietà specificate, il valore della proprietà di tale oggetto sarà una cella vuota. Se gli oggetti rimanenti hanno proprietà aggiuntive, tali valori delle proprietà non verranno inclusi nel file.

Esempio

Esempio 1: Create una pagina Web per visualizzare la data

PS C:\> ConvertTo-Html -InputObject (Get-Date)

Questo comando crea una pagina HTML che visualizza le proprietà della data corrente. Usa il parametro InputObject per inviare i risultati di un comando Get-Date al cmdlet ConvertTo-Html .

Esempio 2: Create una pagina Web per visualizzare gli alias di PowerShell

PS C:\> Get-Alias | ConvertTo-Html | Out-File aliases.htm
PS C:\> Invoke-Item aliases.htm

Questo comando crea una pagina HTML che elenca gli alias di Windows PowerShell nella console corrente.

Il comando usa il cmdlet Get-Alias per ottenere gli alias. Usa l'operatore pipeline (|) per inviare gli alias al cmdlet ConvertTo-Html , che crea la pagina HTML. Il comando usa anche il cmdlet Out-File per inviare il codice HTML al file aliases.htm.

Esempio 3: Create una pagina Web per visualizzare gli eventi di PowerShell

PS C:\> Get-EventLog -LogName "Windows PowerShell" | ConvertTo-Html | Out-File pslog.htm

Questo comando crea una pagina HTML chiamata pslog.htm che visualizza gli eventi nel registro eventi di Windows PowerShell nel computer locale.

Usa il cmdlet Get-EventLog per ottenere gli eventi nel log Windows PowerShell e quindi usa l'operatore della pipeline (|) per inviare gli eventi al cmdlet ConvertTo-Html.

Il comando usa anche il cmdlet Out-File per inviare il codice HTML al file pslog.htm.

Esempio 4: Create una pagina Web per visualizzare i processi

PS C:\> Get-Process | ConvertTo-Html -Property Name, Path, Company -Title "Process Information" | Out-File proc.htm; ii proc.htm

Questi comandi creano e aprono una pagina HTML che elenca il nome, il percorso e la società dei processi nel computer locale.

Il primo comando usa il cmdlet Get-Process per ottenere gli oggetti che rappresentano i processi in esecuzione nel computer. Il comando usa l'operatore pipeline (|) per inviare gli oggetti processo al cmdlet ConvertTo-Html .

Il comando usa il parametro Property per selezionare tre proprietà degli oggetti processo da includere nella tabella. Il comando usa il parametro Title per specificare un titolo per la pagina HTML. Il comando usa anche il cmdlet Out-File per inviare il codice HTML risultante a un file denominato Proc.htm.

Il secondo comando usa il cmdlet Invoke-Item (alias = ii) per aprire il file Proc.htm nel browser predefinito. I due comandi sono separati da un punto e virgola (;).

Esempio 5: Create una pagina Web per visualizzare gli oggetti servizio

PS> get-service | convertto-html -CssUri "test.css"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>HTML TABLE</title>
<link rel="stylesheet" type="text/css" href="test.css" />
...

Questo comando crea una pagina HTML degli oggetti servizio restituiti dal cmdlet Get-Service. Il comando usa il parametro CssUri per specificare un foglio di stile css per la pagina HTML.

Il parametro CssUri aggiunge un <tag rel="stylesheet" aggiuntivo" type="text/css"/ href="test.css"> al codice HTML risultante. L'attributo HREF nel tag contiene il nome del foglio di stile.

Esempio 6: Create una pagina Web per visualizzare gli oggetti servizio

PS C:\> Get-Service | ConvertTo-Html -As LIST | Out-File services.htm

Questo comando crea una pagina HTML degli oggetti servizio restituiti dal cmdlet Get-Service. Il comando usa il parametro As per specificare un formato elenco. Il cmdlet Out-File invia il codice HTML risultante al file Services.htm.

Esempio 7: Create una tabella Web per la data corrente

PS C:\> Get-Date | cth -Fragment
<table>
<colgroup>...</colgroup>
<tr><th>DisplayHint</th><th>DateTime</th><th>Date</th><th>Day</th><th>DayOfWeek</th><th>DayOfYear</th><th>Hour</th>
<th>Kind</th><th>Millisecond</th><th>Minute</th><th>Month</th><th>Second</th><th>Ticks</th><th>TimeOfDay</th><th>Year</th></tr>
<tr><td>DateTime</td><td>Monday, May 05, 2008 10:40:04 AM</td><td>5/5/2008 12:00:00 AM</td><td>5</td><td>Monday</td>
<td>126</td><td>10</td><td>Local</td><td>123</td><td>40</td><td>5</td><td>4</td><td>633455808041237213</td><td>10:40:04.12
37213</td><td>2008</td></tr>
</table>

Questo comando usa ConvertTo-Html per generare una tabella HTML della data corrente. Il comando usa il cmdlet Get-Date per ottenere la data corrente. Usa un operatore pipeline (|) per inviare i risultati al cmdlet ConvertTo-Html (con alias cth).

Il comando ConvertTo-Html include il parametro Fragment , che limita l'output a una tabella HTML. Di conseguenza, gli altri elementi di una pagina HTML, ad esempio i <tag HEAD> e <BODY> , vengono omessi.

Esempio 8: Create una pagina Web per visualizzare gli eventi di PowerShell

PS C:\> Get-EventLog -Log "Windows PowerShell" | ConvertTo-Html -Property id, level, task

Questo comando usa il cmdlet Get-EventLog per ottenere eventi dal registro eventi Windows PowerShell.

Usa un operatore pipeline (|) per inviare gli eventi al cmdlet ConvertTo-Html , che converte gli eventi in formato HTML.

Il comando ConvertTo-Html usa il parametro Property per selezionare solo le proprietà ID, Level e Task dell'evento.

Esempio 9: Create una pagina Web per visualizzare i servizi specificati

PS C:\> Get-Service A* | ConvertTo-Html -Title "Windows Services: Server01" -Body (get-date) -Pre
"<P>Generated by Corporate IT</P>" -Post "For details, contact Corporate IT." | Out-File services.htm; ii services.htm

Questo comando crea e apre una pagina Web che visualizza i servizi nel computer che iniziano con A. Usa i parametri Title, Body, PreContent e PostContent di ConvertTo-Html per personalizzare l'output.

La prima parte del comando usa il cmdlet Get-Service per ottenere i servizi nel computer che iniziano con A. Il comando usa un operatore pipeline (|) per inviare i risultati al cmdlet ConvertTo-Html . Il comando usa anche il cmdlet Out-File per inviare l'output al file di Services.htm.

Un punto e virgola (;) indica la fine del primo comando e l'inizio di un secondo comando che usa il cmdlet Invoke-Item (alias = "ii") per aprire il file Services.htm nel browser predefinito.

Parametri

-As

Specifica se l'oggetto è formattato come tabella o elenco. I valori accettabili per questo parametro sono: Table e List. Il valore predefinito è Table.

Il valore Table genera una tabella HTML simile al formato della tabella Windows PowerShell. La riga di intestazione visualizza i nomi delle proprietà. Ogni riga della tabella rappresenta un oggetto e visualizza i valori dell'oggetto per ogni proprietà.

Il valore List genera una tabella HTML a due colonne per ogni oggetto simile al formato elenco Windows PowerShell. La prima colonna visualizza il nome della proprietà; la seconda colonna visualizza il valore della proprietà.

Type:String
Accepted values:Table, List
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Body

Specifica il testo, come matrice, da aggiungere dopo il tag BODY> di apertura<. Per impostazione predefinita, non esiste alcun testo in tale posizione.

Type:String[]
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CssUri

Specifica l'URI (Uniform Resource Identifier) del foglio di stile CSS applicato al file HTML. L'URI è incluso in un collegamento al foglio di stile nell'output.

Type:Uri
Aliases:cu, uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Fragment

Indica che questo cmdlet genera solo una tabella HTML. I tag HTML, HEAD, TITLE e BODY vengono omessi.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Head

Specifica il contenuto del <tag HEAD> come matrice. Il valore predefinito è <il titolo>HTML TABLE</title>. Se si usa il parametro Head , il parametro Title viene ignorato.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Specifica gli oggetti da rappresentare in HTML. Immettere una variabile che contiene gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti.

Se si utilizza questo parametro per inviare più oggetti, ad esempio tutti i servizi in un computer, ConvertTo-Html crea una tabella che visualizza le proprietà di un insieme o di una matrice di oggetti (System.Object[]). Per creare una tabella dei singoli oggetti, usare l'operatore pipeline per inviare tramite pipe gli oggetti a ConvertTo-Html.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PostContent

Specifica il testo da aggiungere dopo il tag /TABLE> di chiusura<. Per impostazione predefinita, non esiste alcun testo in tale posizione.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PreContent

Specifica una matrice di testo da aggiungere prima del tag TABLE> di apertura<. Per impostazione predefinita, non esiste alcun testo in tale posizione.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Property

Specifica le proprietà degli oggetti nel codice HTML. Il valore del parametro Property può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, usare una tabella hash. Le chiavi valide sono:

  • > Stringa di etichetta <(a differenza di Select-Object o Format-Table, la chiave Nome non è supportata)
  • Stringa> di espressione <o <blocco di script>
Type:Object[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Title

Specifica un titolo per il file HTML, ovvero il testo visualizzato tra i <tag TITLE> .

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

PSObject

È possibile inviare tramite pipe qualsiasi oggetto .NET a ConvertTo-Html.

Output

System.String or System.Xml.XmlDocument

Questo cmdlet restituisce una serie di stringhe che comprendono codice HTML valido.

Note

  • Per usare questo cmdlet, inviare tramite pipe uno o più oggetti al cmdlet o usare il parametro InputObject per specificare l'oggetto. Quando l'input è costituito da più oggetti, l'output di questi due metodi è piuttosto diverso.

    • Quando si inviano tramite pipe più oggetti a un cmdlet, Windows PowerShell invia gli oggetti al cmdlet uno alla volta. Di conseguenza, ConvertTo-Html crea una tabella che visualizza i singoli oggetti. Ad esempio, se si invia tramite pipe i processi in un computer a ConvertTo-Html, nella tabella risultante vengono visualizzati tutti i processi.

    • Quando si usa il parametro InputObject per inviare più oggetti, ConvertTo-Html riceve questi oggetti come raccolta o come matrice. Di conseguenza, viene creata una tabella che visualizza la matrice e le relative proprietà, non gli elementi presenti nella matrice. Ad esempio, se si usa InputObject per inviare i processi in un computer a ConvertTo-Html, la tabella risultante visualizza una matrice di oggetti (System.Object[]) e le relative proprietà.

    Per garantire la conformità con XHTML Strict DTD, il tag DOCTYPE viene modificato di conseguenza:

    (<! DOCTYPE HTML PUBLIC "-/W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">)