Export-Clixml
Hiermee maakt u een XML-weergave van een of meer objecten en slaat u deze op in een bestand.
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
Met de Export-Clixml
cmdlet wordt een object geserialiseerd in een XML-gebaseerde weergave van een CLI (Common Language Infrastructure) die het object opslaat in een bestand. U kunt vervolgens 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 wordt opgeslagen in een bestand. ConvertTo-XML
retourneert de XML, zodat u deze kunt blijven verwerken in PowerShell.
Een waardevol gebruik van op 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 dat wordt opgeslagen in de huidige map, 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 door de pijplijn verzonden. Export-Clixml
gebruikt de parameter Path om een XML-bestand met de naam sample.xml
te maken 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 security descriptor van het bestand op Test.txt
. Het object wordt via de pijplijn verzonden om de security descriptor door te geven aan Export-Clixml
. De XML-weergave van het object wordt opgeslagen in een bestand met de naam FileACL.xml
.
De Import-Clixml
cmdlet maakt een -object 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 kunt u, op basis van een referentie die u hebt opgeslagen in de $Credential
variabele door de Get-Credential
cmdlet uit te voeren, 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 verdoezeling, maar 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, vertegenwoordigd door TestScript.ps1.credential
. Vervang TestScript door de naam van het script waarmee u de referentie laadt.
U verzendt het referentieobject in de pijplijn naar Export-Clixml
en slaat het op in het pad, $Credxmlpath
, dat u in de eerste opdracht hebt opgegeven.
Als u de referentie automatisch wilt importeren in uw script, voert u de laatste twee opdrachten uit. Voer uit Import-Clixml
om het beveiligde referentieobject in uw script te importeren. Met deze import elimineert u het risico dat wachtwoorden zonder opmaak in uw script worden weergegeven.
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 verdoezeling, maar 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
in dit voorbeeld is afgekapt om zich te richten op de referentiegegevens in het XML-bestand. Houd er rekening mee dat 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 is dus gecodeerd, maar niet versleuteld.
Parameters
-Confirm
Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Depth
Hiermee geeft u op hoeveel niveaus van ingesloten objecten zijn 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 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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
: maakt gebruik van de codering voor de ASCII-tekenset (7-bits).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.
Notitie
UTF-7* wordt niet meer aanbevolen om te gebruiken. Vanaf PowerShell 7.1 wordt er een waarschuwing geschreven als u opgeeft utf7
voor de parameter Encoding .
Type: | Encoding |
Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Hiermee dwingt u de opdracht uit te voeren zonder om bevestiging van de gebruiker te vragen.
Zorgt ervoor dat de cmdlet het kenmerk alleen-lezen van het uitvoerbestand indien nodig wist. De cmdlet probeert het kenmerk Alleen-lezen opnieuw in te stellen wanneer de opdracht is voltooid.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Hiermee geeft u het object moet worden geconverteerd. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald. U kunt ook objecten doorsnijden naar Export-Clixml
.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Hiermee geeft u het pad naar het bestand waar de XML-weergave van het object wordt opgeslagen. In tegenstelling tot Path wordt de waarde van de parameter LiteralPath exact gebruikt zoals deze wordt getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escapetekens bevat, plaatst u het tussen enkele aanhalingstekens. Enkele aanhalingstekens vertellen PowerShell dat geen tekens als escape-reeksen worden geïnterpreteerd.
Type: | String |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | 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
wordt het bestand standaard zonder waarschuwing overschreven.
Type: | SwitchParameter |
Aliases: | NoOverwrite |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Hiermee geeft u het pad naar het bestand waar de XML-weergave van het object wordt opgeslagen.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
U kunt een pijplijn voor elk object naar deze cmdlet uitvoeren.
Uitvoerwaarden
Deze cmdlet retourneert een FileInfo-object dat het gemaakte bestand met de opgeslagen gegevens vertegenwoordigt.