Condividi tramite


ConvertTo-Html

Converte gli oggetti .NET in HTML che possono 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 ConvertTo-Html cmdlet converte gli oggetti .NET 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 per selezionare le proprietà dell'oggetto ConvertTo-Html , per specificare un formato di tabella o elenco, per specificare il titolo della pagina HTML, aggiungere testo prima e dopo l'oggetto e restituire solo il frammento di tabella o elenco, anziché una pagina DTD rigorosa.

Quando si inviano più oggetti a ConvertTo-Html, PowerShell crea la tabella (o l'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: Creare una pagina Web per visualizzare la data

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 Get-Date comando al ConvertTo-Html cmdlet .

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

Get-Alias | ConvertTo-Html | Out-File aliases.htm
Invoke-Item aliases.htm

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

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

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

Get-EventLog -LogName "Windows PowerShell" | ConvertTo-Html | Out-File pslog.htm

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

Usa il Get-EventLog cmdlet per ottenere gli eventi nel log di Windows PowerShell e quindi usa l'operatore della pipeline (|) per inviare gli eventi al ConvertTo-Html cmdlet. Il comando usa anche il Out-File cmdlet per inviare il codice HTML al pslog.htm file.

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

Esempio 4: Creare una pagina Web per visualizzare i processi

Get-Process |
  ConvertTo-Html -Property Name, Path, Company -Title "Process Information" |
    Out-File proc.htm
Invoke-Item 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 Get-Process cmdlet per ottenere oggetti che rappresentano i processi in esecuzione nel computer. Il comando usa l'operatore pipeline (|) per inviare gli oggetti processo al ConvertTo-Html cmdlet .

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 Out-File cmdlet per inviare il codice HTML risultante a un file denominato Proc.htm.

Il secondo comando usa il Invoke-Item cmdlet per aprire Proc.htm nel browser predefinito.

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

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 Get-Service cmdlet. Il comando usa il parametro CssUri per specificare un foglio di stile css per la pagina HTML.

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

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

Get-Service | ConvertTo-Html -As LIST | Out-File services.htm

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

Esempio 7: Creare una tabella Web per la data corrente

Get-Date | ConvertTo-Html -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 Get-Date cmdlet per ottenere la data corrente. Usa un operatore pipeline (|) per inviare i risultati al ConvertTo-Html cmdlet .

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

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

Get-EventLog -Log "Windows PowerShell" | ConvertTo-Html -Property id, level, task

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

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

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

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

$htmlParams = @{
  Title = "Windows Services: Server01"
  Body = Get-Date
  PreContent = "<P>Generated by Corporate IT</P>"
  PostContent = "For details, contact Corporate IT."
}
Get-Service A* |
  ConvertTo-Html @htmlParams |
    Out-File Services.htm
Invoke-Item 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 Get-Service cmdlet per ottenere i servizi nel computer che iniziano con A. Il comando usa un operatore pipeline (|) per inviare i risultati al ConvertTo-Html cmdlet . Il comando usa anche il Out-File cmdlet per inviare l'output al Services.htm file.

Un punto e virgola (;) termina il primo comando e avvia un secondo comando, che usa il Invoke-Item cmdlet per aprire il Services.htm file nel browser predefinito.

Parametri

-As

Determina se l'oggetto viene formattato come tabella o come elenco. I valori validi sono Table e List. Il valore predefinito è Table.

Il valore Table genera una tabella HTML simile al formato di tabella di 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 di elenco di PowerShell. Nella prima colonna viene visualizzato il nome della proprietà. La seconda colonna visualizza il valore della proprietà.

Tipo:String
Valori accettati:Table, List
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Body

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

Tipo:String[]
Posizione:3
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Tipo:Uri
Alias:cu, uri
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Fragment

Genera solo una tabella HTML. I <HTML>tag , <TITLE><HEAD>, e <BODY> vengono omessi.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Head

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

Tipo:String[]
Posizione:1
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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 una raccolta o di una matrice di oggetti. Per creare una tabella dei singoli oggetti, usare l'operatore pipeline per inviare tramite pipe gli oggetti a ConvertTo-Html.

Tipo:PSObject
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-PostContent

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

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-PreContent

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

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Property

Include le proprietà specificate degli oggetti nel codice HTML. Il valore del parametro Property può essere una nuova proprietà calcolata. La proprietà calcolata può essere un blocco di script o una tabella hash. Le coppie chiave-valore valide sono:

  • Expression - <string> oppure <script block>
  • FormatString - <string>
  • Width - <int32> - deve essere maggiore di 0
  • Alignment - il valore può essere Left, Centero Right

Per altre informazioni, vedere about_Calculated_Properties.

Tipo:Object[]
Posizione:0
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Title

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

Tipo:String
Posizione:2
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

PSObject

È possibile inviare tramite pipe qualsiasi oggetto a questo cmdlet.

Output

String

Questo cmdlet restituisce una matrice di stringhe di HTML che rappresenta l'oggetto convertito.

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, 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 e le relative proprietà.

    Per rispettare la DTD XHTML Strict, il DOCTYPE tag viene modificato di conseguenza:

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