Export-Clixml
Vytvoří reprezentaci objektu nebo objektů založených na jazyce XML a uloží ho do souboru.
Syntax
ByPath (Výchozí)
Export-Clixml
[-Path] <String>
-InputObject <PSObject>
[-Depth <Int32>]
[-Force]
[-NoClobber]
[-Encoding <Encoding>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Export-Clixml
-LiteralPath <String>
-InputObject <PSObject>
[-Depth <Int32>]
[-Force]
[-NoClobber]
[-Encoding <Encoding>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Rutina Export-Clixml serializovala objekt do reprezentace založené na jazyce XML (Common Language Infrastructure) do souboru. Potom můžete použít Import-Clixml rutinu k opětovnému vytvoření uloženého objektu na základě obsahu tohoto souboru. Další informace o rozhraní příkazového řádku najdete v tématu nezávislosti jazyka.
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í xml, takže ho můžete dál zpracovávat v PowerShellu.
Cenným využitím Export-Clixml na počítačích s Windows je bezpečně exportovat přihlašovací údaje a zabezpečit řetězce 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ý je uložen v aktuálním adresáři, reprezentace řetězce Toto je testovací.
"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 s názvem 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č zabezpečení souboru Test.txt. Odešle objekt dolů 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 souboru FileACL.xml. Potom uloží objekt do proměnné $fileacl.
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 $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 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 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 4: Export objektu přihlašovacích údajů v Linuxu nebo macOS
V tomto příkladu vytvoříme PSCredential v proměnné $Credential 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 jenom š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 cmdletu vás vyzve k potvrzení.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | False |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | viz |
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 |
-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 Types.ps1xml soubory. Další informace naleznete v části about_Types.ps1xml.
Vlastnosti parametru
| Typ: | Int32 |
| Default value: | 2 |
| 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 |
-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á). -
bigendianunicode: Kóduje ve formátu UTF-16 s použitím pořadí bajtů big-endian. -
bigendianutf32: Kóduje ve formátu UTF-32 s použitím big-endian bajtového pořadí. -
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ó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 Encoding 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 naleznete v dokumentaci .NET pro Encoding.CodePage.
Poznámka:
UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se zapíše upozornění, pokud pro parametr utf7 zadáte .
Vlastnosti parametru
| Typ: | Encoding |
| Default value: | UTF8NoBOM |
| Přípustné hodnoty: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| 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 |
-Force
Přinutí příkaz ke spuštění 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í.
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 |
-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.
Vlastnosti parametru
| Typ: | PSObject |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | True |
| Hodnota z kanálu: | True |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-LiteralPath
Určuje cestu k souboru, kde bude uložena reprezentace XML objektu. 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: | False |
| Hodnota ze zbývajících argumentů: | 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í.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | False |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | NoOverwrite |
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 |
-Path
Určuje cestu k souboru, kde bude uložena reprezentace XML objektu.
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: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-WhatIf
Ukazuje, co se stane, když se příkaz spustí. Cmdlet se nespustil.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | False |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | Wi |
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
PSObject
Do této rutiny můžete vytvořit kanál libovolného objektu.
Výstupy
FileInfo
Tato rutina vrátí FileInfo objekt představující vytvořený soubor s uloženými daty.