Delen via


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-Clixmlslaat het op in het pad, $Credxmlpathdat 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

PSObject

U kunt elk object naar deze cmdlet pijplijnen.

Uitvoerwaarden

FileInfo

Deze cmdlet retourneert een FileInfo-object dat het gemaakte bestand vertegenwoordigt met de opgeslagen gegevens.