Sdílet prostřednictvím


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 služby Common Language Infrastructure (CLI). Cenným využitím Import-Clixml na počítačích s 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 použít Import-Clixml k importu zabezpečeného objektu 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 zobrazit vlastnost TypeNames deserializovaného objektu.

Import-Clixml pomocí značky bajtů (BOM) rozpozná formát 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ávislosti 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 uložený v proměnné $Processes.

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 Export-Clixml uložit přihlašovací údaje uložené v proměnné $Credential spuštěním rutiny Get-CredentialExport-Clixml a uložit přihlašovací údaje na disk.

Důležitý

Export-Clixml exportuje jenom š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 WindowsData Protection . Šifrování zajišťuje, že obsah objektu přihlašovacích údajů může dešifrovat pouze váš uživatelský účet. Exportovaný soubor CLIXML nelze 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, do kterého načítáte přihlašovací údaje.

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

Pokud chcete přihlašovací údaje do skriptu importovat automaticky, spusťte poslední dva příkazy. Spuštěním Import-Clixml naimportujte zabezpečený objekt 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 v $original je System.Management.Automation.PSCustomObject, ale typ objektu v $deserialized je Deserialized.System.Management.Automation.PSCustomObject. Také GetDisplay() metoda 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í Neznámý celkový počet. Celé číslo má vlastnost Přesnost, která označuje spolehlivost celkové hodnoty počtu. Hodnota přesnosti se pohybuje od 0.0 do 1.0, kde 0.0 znamená, že rutina nemohla spočítat objekty, 1.0 znamená, že počet je přesný a hodnota mezi 0.0 a 1.0 indikuje 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 Pathse hodnota parametru LiteralPath používá přesně tak, jak je zadaný. Žá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>.