Import-Clixml

Importuje soubor CLIXML a vytvoří odpovídající objekty v PowerShellu.

Syntaxe

Import-Clixml
      [-Path] <String[]>
      [-IncludeTotalCount]
      [-Skip <UInt64>]
      [-First <UInt64>]
      [<CommonParameters>]
Import-Clixml
      -LiteralPath <String[]>
      [-IncludeTotalCount]
      [-Skip <UInt64>]
      [-First <UInt64>]
      [<CommonParameters>]

Description

Rutina Import-Clixml importuje objekty, které byly serializovány do souboru XML common Language Infrastructure (CLI). Cenným využitím počítačů s Import-Clixml Windows je import přihlašovacích údajů a zabezpečených řetězců, které byly exportovány jako zabezpečené XML pomocí Export-Clixml. Příklad č. 2 ukazuje, jak importovat Import-Clixml zabezpečený objekt přihlašovacích údajů.

Data CLIXML se deserializují zpět do objektů PowerShellu. Deserializované objekty však nejsou živými objekty. Jedná se o snímek objektů v době serializace. Deserializované objekty zahrnují vlastnosti, ale žádné metody.

Vlastnost TypeNames obsahuje původní název typu s předponou Deserialized. Příklad č. 3 zobrazte vlastnost TypeNames deserializovaného objektu.

Import-Clixml používá bajtů -order-mark (BOM) ke zjištění formátu kódování souboru. Pokud soubor neobsahuje boM, předpokládá se, že kódování je UTF8.

Další informace o rozhraní příkazového řádku najdete v tématu Nezávislost jazyka.

Příklady

Příklad 1: Import serializovaného souboru a opětovné vytvoření objektu

Tento příklad používá rutinu Export-Clixml k uložení serializované kopie informací o procesu vrácených Get-Process. Import-Clixml načte obsah serializovaného souboru a znovu vytvoří objekt, který je uložen v $Processes proměnné.

Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml

Příklad 2: Import zabezpečeného objektu přihlašovacích údajů

V tomto příkladu můžete spuštěním rutiny spustit Get-Credential přihlašovací údaje, které jste uložili do $Credential proměnné, a uložit Export-Clixml přihlašovací údaje na disk.

Důležité

Export-Clixml Exportuje pouze šifrované přihlašovací údaje ve Windows. V operačních systémech mimo Windows, jako jsou macOS a Linux, se přihlašovací údaje exportují ve formátu prostého textu.

$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

Rutina Export-Clixml šifruje objekty přihlašovacích údajů pomocí rozhraní API služby Windows Data Protection. Šifrování zajišťuje, že obsah objektu přihlašovacích údajů může dešifrovat pouze váš uživatelský účet. Exportovaný CLIXML soubor nejde použít na jiném počítači nebo jiném uživateli.

V příkladu je soubor, ve kterém jsou uloženy přihlašovací údaje, reprezentována TestScript.ps1.credential. Nahraďte TestScript názvem skriptu, kterým načítáte přihlašovací údaje.

Objekt přihlašovacích údajů odešlete do kanálu Export-Clixmla uložíte ho do cesty, $Credxmlpathkterou jste zadali v prvním příkazu.

Pokud chcete přihlašovací údaje do skriptu importovat automaticky, spusťte poslední dva příkazy. Spusťte Import-Clixml import zabezpečeného objektu přihlašovacích údajů do skriptu. Tento import eliminuje riziko vystavení hesel ve formátu prostého textu ve vašem skriptu.

Příklad 3: Kontrola vlastnosti TypeNames deserializovaného objektu

Tento příklad ukazuje import objektu uloženého jako data CLIXML. Data se deserializují zpět do objektu PowerShellu. Deserializovaný objekt však nejsou živé objekty. Jedná se o snímek objektů v době serializace. Deserializované objekty zahrnují vlastnosti, ale žádné metody.

$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

Všimněte si, že typ objektu je $original System.Management.Automation.PSCustomObject, ale typ objektu je $deserialized Deserialized.System.Management.Automation.PSCustomObject. Také metoda GetDisplay() chybí v deserializovaném objektu.

Parametry

-First

Získá pouze zadaný počet objektů. Zadejte počet objektů, které chcete získat.

Typ:UInt64
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-IncludeTotalCount

Zaznamenává celkový počet objektů v sadě dat následované vybranými objekty. Pokud rutina nemůže určit celkový počet, zobrazí se neznámý celkový počet. Celé číslo má vlastnost Přesnost , která označuje spolehlivost celkové hodnoty počtu. Hodnota Přesnost se pohybuje od 0.0 1.0 místa, kde 0.0 znamená, že rutina nemohla spočítat objekty, znamená, 1.0 že počet je přesný a hodnota mezi 0.0 a 1.0 označuje stále spolehlivější odhad.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-LiteralPath

Určuje cestu k souborům XML. Na rozdíl od cesty se hodnota parametru LiteralPath používá přesně tak, jak je zadána. Žádné znaky nejsou interpretovány jako zástupné znaky. Pokud cesta obsahuje řídicí znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby nepřekládaly žádné znaky jako řídicí sekvence.

Typ:String[]
Aliasy:PSPath, LP
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Path

Určuje cestu k souborům XML.

Typ:String[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Skip

Přeskočí zadaný počet objektů a pak získá zbývající objekty. Zadejte počet objektů, které chcete přeskočit.

Typ:UInt64
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

String

Řetězec obsahující cestu k této rutině můžete převést.

Výstupy

PSObject

Tato rutina vrátí objekty, které byly deserializovány z uložených souborů XML.

Poznámky

Při zadávání více hodnot pro parametr použijte čárky k oddělení hodnot. Například <parameter-name> <value1>, <value2>.