Import-Clixml
Importa un file CLIXML e crea oggetti corrispondenti in PowerShell.
Sintassi
Import-Clixml
[-Path] <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Import-Clixml
-LiteralPath <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Descrizione
Il Import-Clixml
cmdlet importa gli oggetti serializzati in un file XML dell'interfaccia della riga di comando (Common Language Infrastructure). Un uso prezioso di Import-Clixml
nei computer Windows consiste nell'importare credenziali e stringhe sicure esportate come XML sicuro tramite Export-Clixml
.
Nell'esempio 2 viene illustrato come usare Import-Clixml
per importare un oggetto credenziale sicuro.
I dati CLIXML vengono deserializzati di nuovo negli oggetti di PowerShell. Tuttavia, gli oggetti deserializzati non sono oggetti attivi. Sono uno snapshot degli oggetti al momento della serializzazione. Gli oggetti deserializzati includono proprietà, ma nessun metodo.
La proprietà TypeNames contiene il nome del tipo originale preceduto da Deserialized
.
Nell'esempio 3 viene mostrata la proprietà TypeNames di un oggetto deserializzato.
Import-Clixml
utilizza il byte order-mark (BOM) per rilevare il formato di codifica del file. Se il file non ha bom, presuppone che la codifica sia UTF8.
Per altre informazioni sull'interfaccia della riga di comando, vedere Indipendenza del linguaggio.
Esempio
Esempio 1: Importare un file serializzato e ricreare un oggetto
In questo esempio viene utilizzato il Export-Clixml
cmdlet per salvare una copia serializzata delle informazioni sul processo restituite da Get-Process
. Import-Clixml
recupera il contenuto del file serializzato e ricrea un oggetto archiviato nella $Processes
variabile .
Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml
Esempio 2: Importare un oggetto credenziali sicure
In questo esempio, data una credenziale archiviata nella $Credential
variabile eseguendo il Get-Credential
cmdlet , è possibile eseguire il Export-Clixml
cmdlet per salvare le credenziali su disco.
Importante
Export-Clixml
esporta solo le credenziali crittografate in Windows. Nei sistemi operativi non Windows, ad esempio macOS e Linux, le credenziali vengono esportate in testo normale.
$Credxmlpath = Join-Path (Split-Path $Profile) TestScript.ps1.credential
$Credential | Export-Clixml $Credxmlpath
$Credxmlpath = Join-Path (Split-Path $Profile) TestScript.ps1.credential
$Credential = Import-Clixml $Credxmlpath
Il Export-Clixml
cmdlet crittografa gli oggetti credenziali usando l'API Protezione dati di Windows. La crittografia garantisce che solo l'account utente possa decrittografare il contenuto dell'oggetto credenziale. Il file esportato CLIXML
non può essere usato in un computer diverso o da un altro utente.
Nell'esempio il file in cui vengono archiviate le credenziali è rappresentato da TestScript.ps1.credential
. Sostituire TestScript con il nome dello script con cui si caricano le credenziali.
Si invia l'oggetto credenziale verso il basso nella pipeline a Export-Clixml
e lo si salva nel percorso, $Credxmlpath
, specificato nel primo comando.
Per importare automaticamente le credenziali nello script, eseguire i due comandi finali. Eseguire Import-Clixml
per importare l'oggetto credenziale protetto nello script. Questa importazione elimina il rischio di esporre le password in testo normale nello script.
Esempio 3: Esaminare la proprietà TypeNames di un oggetto deserializzato
Questo esempio mostra l'importazione di un oggetto archiviato come dati CLIXML. I dati vengono deserializzati nuovamente in un oggetto PowerShell. Tuttavia, l'oggetto deserializzato non è un oggetto attivo. Sono uno snapshot degli oggetti al momento della serializzazione. Gli oggetti deserializzati includono proprietà, ma nessun metodo.
$original = [pscustomobject] @{
Timestamp = Get-Date
Label = 'Meeting event'
}
$original | Add-Member -MemberType ScriptMethod -Name GetDisplay -Value {
'{0:yyyy-MM-dd HH:mm} {1}' -f $this.Timestamp, $this.Label
}
$original | Get-Member -MemberType ScriptMethod
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Label NoteProperty string Label=Meeting event
Timestamp NoteProperty System.DateTime Timestamp=1/31/2024 2:27:59 PM
GetDisplay ScriptMethod System.Object GetDisplay();
$original | Export-Clixml -Path event.clixml
$deserialized = Import-CliXml -Path event.clixml
$deserialized | Get-Member
TypeName: Deserialized.System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Label NoteProperty string Label=Meeting event
Timestamp NoteProperty System.DateTime Timestamp=1/31/2024 2:27:59 PM
Si noti che il tipo dell'oggetto in $original
è System.Management.Automation.PSCustomObject, ma il tipo dell'oggetto in $deserialized
è Deserialized.System.Management.Automation.PSCustomObject. Inoltre, il GetDisplay()
metodo non è presente nell'oggetto deserializzato.
Parametri
-First
Ottiene solo il numero specificato di oggetti. Immettere il numero di processi da ottenere.
Tipo: | UInt64 |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-IncludeTotalCount
Segnala il numero totale di oggetti nel set di dati seguito dagli oggetti selezionati. Se il cmdlet non è in grado di determinare il conteggio totale, viene visualizzato Conteggio totale sconosciuto. L'intero ha una proprietà Accuracy che indica l'affidabilità del valore del conteggio totale. Il valore di Accuracy varia da 0.0
a dove 0.0
significa che il cmdlet non è riuscito a 1.0
contare gli oggetti, 1.0
significa che il conteggio è esatto e un valore tra 0.0
e 1.0
indica una stima sempre più affidabile.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-LiteralPath
Specifica il percorso dei file XML. A differenza di Path, il valore del parametro LiteralPath viene usato esattamente come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.
Tipo: | String[] |
Alias: | PSPath, LP |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Path
Specifica il percorso dei file XML.
Tipo: | String[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Skip
Ignora il numero specificato di oggetti e ottiene gli oggetti rimanenti. Immettere il numero di processi da ignorare.
Tipo: | UInt64 |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe una stringa contenente un percorso a questo cmdlet.
Output
Questo cmdlet restituisce oggetti deserializzati dai file XML archiviati.
Note
Quando si specificano più valori per un parametro, separare ogni valore con una virgola. Ad esempio: <parameter-name> <value1>, <value2>
.