Import-Clixml
Importerar en CLIXML-fil och skapar motsvarande objekt i PowerShell.
Syntax
Import-Clixml
[-Path] <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Import-Clixml
-LiteralPath <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Description
Cmdleten Import-Clixml
importerar objekt som har serialiserats till en XML-fil för Common Language Infrastructure (CLI). En värdefull användning av på Windows-datorer är att importera autentiseringsuppgifter och säkra strängar som exporterades som säker XML med hjälp av Import-Clixml
Export-Clixml
.
Exempel nr 2 visar hur du använder Import-Clixml
för att importera ett säkert autentiseringsobjekt.
CLIXML-data deserialiseras tillbaka till PowerShell-objekt. De deserialiserade objekten är dock inte levande objekt. De är en ögonblicksbild av objekten vid tidpunkten för serialiseringen. De deserialiserade objekten innehåller egenskaper men inga metoder.
Egenskapen TypeNames innehåller det ursprungliga typnamnet med prefixet Deserialized
.
Exempel nr 3 visar egenskapen TypeNames för ett deserialiserat objekt.
Import-Clixml
använder byte-order-mark (BOM) för att identifiera kodningsformatet för filen. Om filen inte har någon strukturlista förutsätter den att kodningen är UTF8.
Mer information om CLI finns i Språkberoende.
Exempel
Exempel 1: Importera en serialiserad fil och återskapa ett objekt
I det här exemplet används cmdleten Export-Clixml
för att spara en serialiserad kopia av processinformationen som returneras av Get-Process
. Import-Clixml
hämtar innehållet i den serialiserade filen och återskapar ett objekt som lagras i variabeln $Processes
.
Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml
Exempel 2: Importera ett objekt för säker autentiseringsuppgift
I det här exemplet kan du, med tanke på en autentiseringsuppgift som du har lagrat i variabeln $Credential
genom att köra cmdleten Get-Credential
, köra cmdleten Export-Clixml
för att spara autentiseringsuppgifterna på disken.
Viktigt!
Export-Clixml
exporterar endast krypterade autentiseringsuppgifter i Windows. I icke-Windows-operativsystem som macOS och Linux exporteras autentiseringsuppgifterna i klartext.
$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
Cmdleten Export-Clixml
krypterar autentiseringsobjekt med hjälp av Windows Data Protection-API:et. Krypteringen säkerställer att endast ditt användarkonto kan dekryptera innehållet i autentiseringsobjektet. Den exporterade CLIXML
filen kan inte användas på en annan dator eller av en annan användare.
I exemplet representeras filen där autentiseringsuppgifterna lagras av TestScript.ps1.credential
. Ersätt TestScript med namnet på skriptet som du läser in autentiseringsuppgifterna med.
Du skickar autentiseringsobjektet nedåt i pipelinen till Export-Clixml
och sparar det i sökvägen, $Credxmlpath
, som du angav i det första kommandot.
Om du vill importera autentiseringsuppgifterna automatiskt till skriptet kör du de två sista kommandona. Kör Import-Clixml
för att importera det skyddade autentiseringsobjektet till skriptet. Den här importen eliminerar risken för att exponera oformaterade lösenord i skriptet.
Exempel 3: Inspektera egenskapen TypeNames för ett deserialiserat objekt
Det här exemplet visar hur du importerar ett objekt som lagras som CLIXML-data. Data deserialiseras tillbaka till ett PowerShell-objekt. Det deserialiserade objektet är dock inte ett levande objekt. De är en ögonblicksbild av objekten vid tidpunkten för serialiseringen. De deserialiserade objekten innehåller egenskaper men inga metoder.
$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
Observera att typen av objektet i $original
är System.Management.Automation.PSCustomObject, men typen av objektet i $deserialized
är Deserialized.System.Management.Automation.PSCustomObject. GetDisplay()
Dessutom saknas metoden från det deserialiserade objektet.
Parametrar
-First
Hämtar endast det angivna antalet objekt. Ange antalet objekt som ska hämtas.
Typ: | UInt64 |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-IncludeTotalCount
Rapporterar det totala antalet objekt i datauppsättningen följt av de markerade objekten. Om cmdleten inte kan fastställa det totala antalet visas okänt totalt antal. Heltalet har en noggrannhetsegenskap som anger tillförlitligheten för det totala antalet värden. Värdet för Noggrannhet sträcker sig från 0.0
till 1.0
där 0.0
innebär att cmdleten inte kunde räkna objekten, 1.0
innebär att antalet är exakt och ett värde mellan 0.0
och 1.0
anger en allt mer tillförlitlig uppskattning.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-LiteralPath
Anger sökvägen till XML-filerna. Till skillnad från Path används värdet för parametern LiteralPath precis som det skrivs. Inga tecken tolkas som jokertecken. Om sökvägen innehåller escape-tecken omger du den med enkla citattecken. Enkla citattecken gör att PowerShell inte tolkar några tecken som escape-sekvenser.
Typ: | String[] |
Alias: | PSPath, LP |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Path
Anger sökvägen till XML-filerna.
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Skip
Ignorerar det angivna antalet objekt och hämtar sedan de återstående objekten. Ange antalet objekt som ska hoppa över.
Typ: | UInt64 |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
Du kan skicka en sträng som innehåller en sökväg till den här cmdleten.
Utdata
Den här cmdleten returnerar objekt som deserialiserats från de lagrade XML-filerna.
Kommentarer
När du anger flera värden för en parameter använder du kommatecken för att separera värdena. Exempel: <parameter-name> <value1>, <value2>