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 cmdlet Import-Clixml
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 proteggere stringhe esportate come XML sicuro usando Export-Clixml
.
esempio 2 illustra come usare Import-Clixml
per importare un oggetto credenziali sicure.
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
Import-Clixml
usa 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 cmdlet Export-Clixml
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 variabile $Processes
.
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 variabile $Credential
eseguendo il cmdlet Get-Credential
, è possibile eseguire il cmdlet Export-Clixml
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 cmdlet Export-Clixml
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 CLIXML
esportato 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 sta caricando la credenziale.
Inviare l'oggetto credenziale verso il basso nella pipeline per Export-Clixml
e salvarlo 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 metodo GetDisplay()
non è presente nell'oggetto deserializzato.
Parametri
-First
Ottiene solo il numero specificato di oggetti. Immettere il numero di oggetti 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 riesce a determinare il conteggio totale, viene visualizzato Conteggio totale sconosciuto. L'intero ha una proprietà accuratezza 0.0
a 1.0
in cui 0.0
significa che il cmdlet non è riuscito a 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
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 quindi ottiene gli oggetti rimanenti. Immettere il numero di oggetti 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, usare le virgole per separare i valori. Ad esempio, <parameter-name> <value1>, <value2>
.