Export-Clixml

Vytvoří reprezentaci objektu nebo objektů založených na jazyce XML a uloží ho do souboru.

Syntax

Export-Clixml
      [-Depth <Int32>]
      [-Path] <String>
      -InputObject <PSObject>
      [-Force]
      [-NoClobber]
      [-Encoding <Encoding>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Export-Clixml
      [-Depth <Int32>]
      -LiteralPath <String>
      -InputObject <PSObject>
      [-Force]
      [-NoClobber]
      [-Encoding <Encoding>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

Rutina Export-Clixml vytvoří reprezentaci objektu nebo objektů založené na jazyce XML (Common Language Infrastructure) a uloží ho do souboru. Pak můžete pomocí Import-Clixml rutiny znovu vytvořit uložený objekt na základě obsahu tohoto souboru. Další informace o rozhraní příkazového řádku najdete v tématu Jazyková nezávislost.

Tato rutina se podobá ConvertTo-Xmls tím rozdílem, že Export-Clixml uloží výsledný kód XML do souboru. ConvertTo-XML vrátí kód XML, abyste ho mohli dál zpracovávat v PowerShellu.

Cenným využitím počítačů s Windows je bezpečné exportování přihlašovacích Export-Clixml údajů a zabezpečení řetězců jako XML. Příklad najdete v příkladu 3.

Příklady

Příklad 1: Export řetězce do souboru XML

Tento příklad vytvoří soubor XML, který se uloží v aktuálním adresáři, reprezentace řetězce Toto je test.

"This is a test" | Export-Clixml -Path .\sample.xml

Řetězec This is a test se odešle do kanálu. Export-Clixml používá parametr Path k vytvoření souboru XML pojmenovaného sample.xml v aktuálním adresáři.

Příklad 2: Export objektu do souboru XML

Tento příklad ukazuje, jak exportovat objekt do souboru XML a pak vytvořit objekt importem XML ze souboru.

Get-Acl C:\test.txt | Export-Clixml -Path .\FileACL.xml
$fileacl = Import-Clixml -Path .\FileACL.xml

Rutina Get-Acl získá popisovač Test.txt zabezpečení souboru. Odešle objekt dolů do kanálu, aby předal popisovač zabezpečení .Export-Clixml Reprezentace objektu založená na jazyce XML je uložena v souboru s názvem FileACL.xml.

Rutina Import-Clixml vytvoří objekt z XML v FileACL.xml souboru. Pak uloží objekt do $fileacl proměnné.

Příklad 3: Šifrování exportovaného objektu přihlašovacích údajů ve Windows

V tomto příkladu můžete $Credential spuštěním Get-Credential rutiny spustit Export-Clixml rutinu a uložit přihlašovací údaje na disk.

Důležité

Export-Clixml Exportuje pouze šifrované přihlašovací údaje ve Windows. V jiných operačních systémech než Windows, jako je macOS a Linux, se přihlašovací údaje exportují jako prostý text uložený jako pole znaků Unicode. To poskytuje určité obfuskace, ale neposkytuje šifrování.

$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 na tomto počítači. 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án 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 4: Export objektu přihlašovacích údajů v Linuxu nebo macOS

V tomto příkladu vytvoříme psCredential v $Credential proměnné pomocí rutiny Get-Credential . Pak použijeme Export-Clixml k uložení přihlašovacích údajů na disk.

Důležité

Export-Clixml Exportuje pouze šifrované přihlašovací údaje ve Windows. V jiných operačních systémech než Windows, jako je macOS a Linux, se přihlašovací údaje exportují jako prostý text uložený jako pole znaků Unicode. To poskytuje určité obfuskace, ale neposkytuje šifrování.

PS> $Credential = Get-Credential

PowerShell credential request
Enter your credentials.
User: User1
Password for user User1: ********

PS> $Credential | Export-Clixml ./cred2.xml
PS> Get-Content ./cred2.xml

...
    <Props>
      <S N="UserName">User1</S>
      <SS N="Password">700061007300730077006f0072006400</SS>
    </Props>
...

PS> 'password' | Format-Hex -Encoding unicode

   Label: String (System.String) <52D60C91>

          Offset Bytes                                           Ascii
                 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
          ------ ----------------------------------------------- -----
0000000000000000 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 p a s s w o r d

Výstup Get-Content v tomto příkladu byl zkrácen, aby se zaměřil na informace o přihlašovacích údajích v souboru XML. Všimněte si, že hodnota prostého textu hesla je uložena v souboru XML jako znakové pole Unicode, jak Format-Hexje prokázáno . Proto je hodnota zakódovaná, ale ne zašifrovaná.

Parametry

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Depth

Určuje, kolik úrovní obsažených objektů je součástí reprezentace XML. Výchozí hodnota je 2.

Výchozí hodnotu lze přepsat pro typ objektu v souborech Types.ps1xml . Další informace najdete v tématu about_Types.ps1xml.

Type:Int32
Position:Named
Default value:2
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

Určuje typ kódování cílového souboru. Výchozí hodnota je utf8NoBOM.

Přijatelné hodnoty pro tento parametr jsou následující:

  • ascii: Používá kódování pro znakovou sadu ASCII (7bitové).
  • bigendianunicode: Kóduje ve formátu UTF-16 pomocí pořadí velkých bajtů.
  • bigendianutf32: Kóduje ve formátu UTF-32 pomocí pořadí velkých bajtů.
  • oem: Používá výchozí kódování pro MS-DOS a konzolové programy.
  • unicode: Kóduje ve formátu UTF-16 pomocí pořadí malých bajtů.
  • utf7: Kóduje ve formátu UTF-7.
  • utf8: Kóduje ve formátu UTF-8.
  • utf8BOM: Kóduje formát UTF-8 pomocí značky pořadí bajtů (BOM)
  • utf8NoBOM: Kóduje ve formátu UTF-8 bez značky pořadí bajtů (BOM)
  • utf32: Kóduje formát UTF-32.

Počínaje PowerShellem 6.2 umožňuje parametr Kódování také číselná ID registrovaných znakových stránek (například -Encoding 1251) nebo názvy řetězců registrovaných znakových stránek (například -Encoding "windows-1251"). Další informace najdete v dokumentaci k .NET pro Kódování.CodePage.

Poznámka

UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se při zadání utf7 parametru Kódování zapíše upozornění.

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Accept pipeline input:False
Accept wildcard characters:False

-Force

Vynutí spuštění příkazu bez žádosti o potvrzení uživatele.

Způsobí, že rutina v případě potřeby vymaže atribut výstupního souboru jen pro čtení. Po dokončení příkazu se rutina pokusí resetovat atribut jen pro čtení.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Určuje objekt, který se má převést. Zadejte proměnnou, která obsahuje objekty, nebo zadejte příkaz nebo výraz, který získá objekty. Objekty lze také pipetovat do Export-Clixml.

Type:PSObject
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

Určuje cestu k souboru, kde bude uložena reprezentace XML objektu. Na rozdíl od cesty se 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 neinterpretovat žádné znaky jako řídicí sekvence.

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-NoClobber

Označuje, že rutina nepřepíše obsah existujícího souboru. Ve výchozím nastavení, pokud soubor existuje v zadané cestě, Export-Clixml přepíše soubor bez upozornění.

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Určuje cestu k souboru, kde bude uložena reprezentace XML objektu.

Type:String
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zobrazuje, co by se stalo při spuštění rutiny. Rutina se nespustí.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

PSObject

Můžete kanálovat libovolný objekt do Export-Clixml.

Výstupy

FileInfo

Export-Clixml vytvoří soubor, který obsahuje XML.