Export-Clixml
Hiermee maakt u een XML-weergave van een object of objecten en slaat u het op in een bestand.
Syntaxis
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
De Export-Clixml
cmdlet heeft een object geserialiseerd in een XML-weergave op basis van Common Language Infrastructure (CLI). Vervolgens kunt u de Import-Clixml
cmdlet gebruiken om het opgeslagen object opnieuw te maken op basis van de inhoud van dat bestand. Zie Taalafhankelijkheid voor meer informatie over CLI.
Deze cmdlet is vergelijkbaar met ConvertTo-Xml
, behalve dat Export-Clixml
de resulterende XML in een bestand wordt opgeslagen. ConvertTo-XML
retourneert de XML, zodat u deze kunt blijven verwerken in PowerShell.
Een waardevol gebruik van Windows-computers is het veilig exporteren van Export-Clixml
referenties en beveiligde tekenreeksen als XML. Zie voorbeeld 3 voor een voorbeeld.
Voorbeelden
Voorbeeld 1: Een tekenreeks exporteren naar een XML-bestand
In dit voorbeeld wordt een XML-bestand gemaakt waarin de huidige map wordt opgeslagen, een weergave van de tekenreeks . Dit is een test.
"This is a test" | Export-Clixml -Path .\sample.xml
De tekenreeks This is a test
wordt naar beneden verzonden in de pijplijn. Export-Clixml
gebruikt de parameter Path om een XML-bestand te maken met de naam sample.xml
in de huidige map.
Voorbeeld 2: Een object exporteren naar een XML-bestand
In dit voorbeeld ziet u hoe u een object exporteert naar een XML-bestand en vervolgens een object maakt door de XML uit het bestand te importeren.
Get-Acl C:\test.txt | Export-Clixml -Path .\FileACL.xml
$fileacl = Import-Clixml -Path .\FileACL.xml
De Get-Acl
cmdlet haalt de beveiligingsdescriptor van het Test.txt
bestand op. Het object wordt in de pijplijn verzonden om de beveiligingsdescriptor door te geven aan Export-Clixml
. De XML-weergave van het object wordt opgeslagen in een bestand met de naam FileACL.xml
.
Met Import-Clixml
de cmdlet wordt een object gemaakt op basis van de XML in het FileACL.xml
bestand. Vervolgens wordt het object opgeslagen in de $fileacl
variabele.
Voorbeeld 3: Een geëxporteerd referentieobject versleutelen in Windows
In dit voorbeeld, op basis van een referentie die u in de $Credential
variabele hebt opgeslagen door de Get-Credential
cmdlet uit te voeren, kunt u de Export-Clixml
cmdlet uitvoeren om de referentie op schijf op te slaan.
Belangrijk
Export-Clixml
exporteert alleen versleutelde referenties in Windows. Op niet-Windows-besturingssystemen, zoals macOS en Linux, worden referenties geëxporteerd als tekst zonder opmaak die is opgeslagen als een Unicode-tekenmatrix. Dit biedt enige verdoofing, maar biedt geen versleuteling.
$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
De Export-Clixml
cmdlet versleutelt referentieobjecten met behulp van de Windows Data Protection-API. De versleuteling zorgt ervoor dat alleen uw gebruikersaccount op die computer de inhoud van het referentieobject kan ontsleutelen.
Het geëxporteerde CLIXML
bestand kan niet worden gebruikt op een andere computer of door een andere gebruiker.
In het voorbeeld wordt het bestand waarin de referentie is opgeslagen, weergegeven door TestScript.ps1.credential
. Vervang TestScript door de naam van het script waarmee u de referentie laadt.
U verzendt het referentieobject omlaag in de pijplijn en Export-Clixml
slaat het op in het pad, $Credxmlpath
dat u hebt opgegeven in de eerste opdracht.
Als u de referentie automatisch in uw script wilt importeren, voert u de laatste twee opdrachten uit. Voer deze opdracht uit Import-Clixml
om het beveiligde referentieobject in uw script te importeren. Met deze import wordt het risico van het weergeven van wachtwoorden zonder opmaak in uw script weggenomen.
Voorbeeld 4: Een referentieobject exporteren in Linux of macOS
In dit voorbeeld maken we een PSCredential in de $Credential
variabele met behulp van de Get-Credential
cmdlet. Vervolgens gebruiken Export-Clixml
we om de referentie op schijf op te slaan.
Belangrijk
Export-Clixml
exporteert alleen versleutelde referenties in Windows. Op niet-Windows-besturingssystemen, zoals macOS en Linux, worden referenties geëxporteerd als tekst zonder opmaak die is opgeslagen als een Unicode-tekenmatrix. Dit biedt enige verdoofing, maar biedt geen versleuteling.
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
De uitvoer van Get-Content
dit voorbeeld is afgekapt om te focussen op de referentiegegevens in het XML-bestand. De waarde voor tekst zonder opmaak van het wachtwoord wordt opgeslagen in het XML-bestand als een Unicode-tekenmatrix zoals bewezen door Format-Hex
. De waarde wordt dus gecodeerd, maar niet versleuteld.
Parameters
-Confirm
Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.
Type: | SwitchParameter |
Aliassen: | cf |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Depth
Hiermee geeft u op hoeveel niveaus van ingesloten objecten worden opgenomen in de XML-weergave. De standaardwaarde is 2
.
De standaardwaarde kan worden overschreven voor het objecttype in de Types.ps1xml
bestanden. Zie about_Types.ps1xml voor meer informatie.
Type: | Int32 |
Position: | Named |
Default value: | 2 |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Encoding
Hiermee geeft u het type codering voor het doelbestand. De standaardwaarde is utf8NoBOM
.
De acceptabele waarden voor deze parameter zijn als volgt:
ascii
: gebruikt de codering voor de ASCII-tekenset (7-bits).ansi
: Gebruikt de codering voor de ANSI-codepagina van de huidige cultuur. Deze optie is toegevoegd in 7.4.bigendianunicode
: Codeert in UTF-16-indeling met behulp van de bytevolgorde big-endian.bigendianutf32
: Codeert in UTF-32-indeling met behulp van de bytevolgorde big-endian.oem
: maakt gebruik van de standaardcodering voor MS-DOS en consoleprogramma's.unicode
: Codeert in UTF-16-indeling met behulp van de bytevolgorde little-endian.utf7
: Codeert in UTF-7-indeling.utf8
: Codeert in UTF-8-indeling.utf8BOM
: Codeert in UTF-8-indeling met Byte Order Mark (BOM)utf8NoBOM
: Codeert in UTF-8-indeling zonder Byte Order Mark (BOM)utf32
: Codeert in UTF-32-indeling.
Vanaf PowerShell 6.2 staat de coderingsparameter ook numerieke id's toe van geregistreerde codepagina's (zoals -Encoding 1251
) of tekenreeksnamen van geregistreerde codepagina's (zoals-Encoding "windows-1251"
). Zie de .NET-documentatie voor Encoding.CodePage voor meer informatie.
Vanaf PowerShell 7.4 kunt u de Ansi
waarde voor de coderingsparameter gebruiken om de numerieke id voor de ANSI-codepagina van de huidige cultuur door te geven zonder deze handmatig op te geven.
Notitie
UTF-7* wordt niet meer aanbevolen om te gebruiken. Vanaf PowerShell 7.1 wordt een waarschuwing geschreven als u opgeeft utf7
voor de coderingsparameter .
Type: | Encoding |
Geaccepteerde waarden: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Force
Hiermee dwingt u de opdracht uit te voeren zonder dat u om bevestiging van de gebruiker wordt gevraagd.
Zorgt ervoor dat de cmdlet het kenmerk alleen-lezen van het uitvoerbestand wist, indien nodig. De cmdlet probeert het kenmerk alleen-lezen opnieuw in te stellen wanneer de opdracht is voltooid.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-InputObject
Hiermee geeft u het object dat moet worden geconverteerd. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald. U kunt objecten ook doorsluisen naar Export-Clixml
.
Type: | PSObject |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-LiteralPath
Hiermee geeft u het pad naar het bestand waarin de XML-weergave van het object wordt opgeslagen. In tegenstelling tot Path wordt de waarde van de Parameter LiteralPath precies gebruikt zoals deze is getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escapetekens bevat, plaatst u het tussen enkele aanhalingstekens. Enkele aanhalingstekens geven PowerShell aan dat er geen tekens als escapereeksen moeten worden geïnterpreteerd.
Type: | String |
Aliassen: | PSPath, LP |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-NoClobber
Geeft aan dat de cmdlet de inhoud van een bestaand bestand niet overschrijft. Als er een bestand in het opgegeven pad bestaat, Export-Clixml
overschrijft u het bestand standaard zonder waarschuwing.
Type: | SwitchParameter |
Aliassen: | NoOverwrite |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Path
Hiermee geeft u het pad naar het bestand waarin de XML-weergave van het object wordt opgeslagen.
Type: | String |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-WhatIf
Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliassen: | wi |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt elk object naar deze cmdlet pijplijnen.
Uitvoerwaarden
Deze cmdlet retourneert een FileInfo-object dat het gemaakte bestand vertegenwoordigt met de opgeslagen gegevens.