Export-Clixml
Vytvoří reprezentaci objektu nebo objektů založených na jazyce XML a uloží ho do souboru.
Syntaxe
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
serializovala objekt do reprezentace založené na jazyce XML (Common Language Infrastructure) uloží do souboru. Potom můžete pomocí rutiny Import-Clixml
znovu vytvořit uložený objekt na základě obsahu tohoto souboru. Další informace o rozhraní příkazového řádku najdete v tématu Nezávislost jazyka.
Tato rutina je podobná s ConvertTo-Xml
tím rozdílem, že Export-Clixml
ukládá 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
pomocí parametru Path vytvoří soubor XML pojmenovaný 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ů kanálu, aby předal popisovač zabezpečení do 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 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 jiných 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á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-Clixml
a uložíte ho do cesty, $Credxmlpath
kterou 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 v proměnné psCredential pomocí rutinyGet-Credential
.$Credential
Pak přihlašovací údaje uložíme Export-Clixml
na disk.
Důležité
Export-Clixml
Exportuje pouze šifrované přihlašovací údaje ve Windows. V operačních systémech jiných 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 pole znaků Unicode, jak je prokázáno Format-Hex
. Proto je hodnota zakódovaná, ale ne zašifrovaná.
Parametry
-Confirm
Před spuštěním rutiny zobrazí výzvu k potvrzení.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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.
Typ: | Int32 |
Position: | Named |
Default value: | 2 |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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í znakové sady ASCII (7bitová).ansi
: Používá kódování pro kódovou stránku ANSI aktuální jazykové verze. Tato možnost byla přidána ve verzi 7.4.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í malého bajtového pořadí.utf7
: Kóduje ve formátu UTF-7.utf8
: Kóduje ve formátu UTF-8.utf8BOM
: Kódování ve formátu UTF-8 pomocí značky pořadí bajtů (BOM)utf8NoBOM
: Kódování ve formátu UTF-8 bez značky pořadí bajtů (BOM)utf32
: Kóduje ve formátu UTF-32.
Počínaje PowerShellem 6.2 umožňuje parametr Kódování také číselná ID registrovaných znakových stránek (jako -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 Encoding.CodePage.
Počínaje PowerShellem 7.4 můžete hodnotu parametru Encoding použít Ansi
k předání číselného ID pro znakovou stránku ANSI aktuální jazykové verze, aniž byste ji museli zadávat ručně.
Poznámka:
UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se při zadání parametru Encoding zapíše utf7
upozornění.
Typ: | Encoding |
Přípustné hodnoty: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Force
Vynutí spuštění příkazu bez výzvy k 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í obnovit atribut jen pro čtení.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | 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ý objekty získá. Objekty lze také pipetovat do Export-Clixml
.
Typ: | PSObject |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | 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 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: | False |
Přijmout zástupné znaky: | 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í.
Typ: | SwitchParameter |
Aliasy: | NoOverwrite |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Path
Určuje cestu k souboru, kde bude uložena reprezentace XML objektu.
Typ: | String |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-WhatIf
Zobrazuje, co by se stalo při spuštění rutiny. Rutina se nespustí.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Do této rutiny můžete vytvořit kanál libovolného objektu.
Výstupy
Tato rutina vrátí objekt FileInfo představující vytvořený soubor s uloženými daty.