Sdílet prostřednictvím


Import-Clixml

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

Syntax

ByPath (Výchozí)

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

ByLiteralPath

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

Vlastnosti parametru

Typ:UInt64
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů: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.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů: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ý znak není interpretován jako zástupný znak. Pokud cesta obsahuje únikové znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby žádné znaky neinterpretoval jako únikové sekvence.

Vlastnosti parametru

Typ:

String[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:PSPath, PO

Sady parametrů

ByLiteralPath
Position:Named
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-Path

Určuje cestu k souborům XML.

Vlastnosti parametru

Typ:

String[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

ByPath
Position:0
Povinné:True
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů: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.

Vlastnosti parametru

Typ:UInt64
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

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>.