Freigeben über


Export-Clixml

Erstellt eine XML-basierte Darstellung eines Objekts oder von Objekten und speichert sie in einer Datei.

Syntax

Export-Clixml
      [-Path] <String>
      -InputObject <PSObject>
      [-Depth <Int32>]
      [-Force]
      [-NoClobber]
      [-Encoding <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Export-Clixml
      -LiteralPath <String>
      -InputObject <PSObject>
      [-Depth <Int32>]
      [-Force]
      [-NoClobber]
      [-Encoding <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Beschreibung

Das Export-Clixml Cmdlet serialisiert ein Objekt in eine XML-basierte DARSTELLUNG (Common Language Infrastructure, CLI) speichert es in einer Datei. Anschließend können Sie das Import-Clixml Cmdlet verwenden, um das gespeicherte Objekt basierend auf dem Inhalt dieser Datei neu zu erstellen. Weitere Informationen zu CLI finden Sie unter Sprachunabhängigkeit.

Dieses Cmdlet ähnelt ConvertTo-Xml, mit der Ausnahme, dass Export-Clixml der resultierende XML-Code in einer Datei gespeichert wird. ConvertTo-XML gibt den XML-Code zurück, sodass Sie ihn weiterhin in PowerShell verarbeiten können.

Eine wertvolle Verwendung von Export-Clixml Windows-Computern besteht darin, Anmeldeinformationen und sichere Zeichenfolgen sicher als XML zu exportieren. Ein Beispiel finden Sie unter Beispiel 3.

Beispiele

Beispiel 1: Exportieren einer Zeichenfolge in eine XML-Datei

In diesem Beispiel wird eine XML-Datei erstellt, die im aktuellen Verzeichnis gespeichert ist, eine Darstellung der Zeichenfolge . Dies ist ein Test.

"This is a test" | Export-Clixml -Path .\sample.xml

Die Zeichenfolge This is a test wird an die Pipeline gesendet. Export-Clixml verwendet den Parameter "Path ", um eine XML-Datei zu erstellen, die im aktuellen Verzeichnis benannt ist sample.xml .

Beispiel 2: Exportieren eines Objekts in eine XML-Datei

In diesem Beispiel wird veranschaulicht, wie Sie ein Objekt in eine XML-Datei exportieren können und wie Sie dann ein Objekt erstellen können, indem Sie den XML-Code aus der Datei importieren.

Get-Acl C:\test.txt | Export-Clixml -Path .\FileACL.xml
$fileacl = Import-Clixml -Path .\FileACL.xml

Das Get-Acl Cmdlet ruft die Sicherheitsbeschreibung der Test.txt Datei ab. Es sendet das Objekt an die Pipeline, um den Sicherheitsdeskriptor an .Export-Clixml Die XML-basierte Darstellung des Objekts wird in einer Datei mit dem Namen FileACL.xmlgespeichert.

Das Import-Clixml Cmdlet erstellt ein Objekt aus dem XML-Code in der FileACL.xml Datei. Anschließend speichert es das Objekt in der $fileacl Variablen.

Beispiel 3: Verschlüsseln eines exportierten Anmeldeinformationsobjekts

In diesem Beispiel können Sie bei einer Anmeldeinformation, die Sie in der $Credential Variablen gespeichert haben, durch Ausführen des Get-Credential Cmdlets das Export-Clixml Cmdlet ausführen, um die Anmeldeinformationen auf dem Datenträger zu speichern.

Wichtig

Export-Clixml exportiert nur verschlüsselte Anmeldeinformationen unter Windows. Auf Nicht-Windows-Betriebssystemen wie macOS und Linux werden Anmeldeinformationen als Nur-Text exportiert, der als Unicode-Zeichenarray gespeichert ist. Dies bietet einige Verschleierung, bietet jedoch keine Verschlüsselung.

$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

Das Export-Clixml Cmdlet verschlüsselt Anmeldeinformationsobjekte mithilfe der Windows Data Protection-API. Die Verschlüsselung stellt sicher, dass nur Ihr Benutzerkonto auf diesem Computer den Inhalt des Anmeldeinformationsobjekts entschlüsseln kann. Die exportierte CLIXML Datei kann nicht auf einem anderen Computer oder von einem anderen Benutzer verwendet werden.

Im Beispiel wird die Datei, in der die Anmeldeinformationen gespeichert werden, durch TestScript.ps1.credentialdargestellt. Ersetzen Sie TestScript durch den Namen des Skripts, mit dem Sie die Anmeldeinformationen laden.

Sie senden das Anmeldeinformationsobjekt an die Pipeline Export-Clixmlnach unten, und speichern es im Pfad, $Credxmlpathden Sie im ersten Befehl angegeben haben.

Führen Sie die letzten beiden Befehle aus, um die Anmeldeinformationen automatisch in Ihr Skript zu importieren. Führen Sie den Befehl aus Import-Clixml , um das gesicherte Anmeldeinformationsobjekt in Ihr Skript zu importieren. Durch diesen Import wird das Risiko beseitigt, dass Nur-Text-Kennwörter in Ihrem Skript verfügbar sind.

Parameter

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Depth

Gibt an, wie viele Ebenen der enthaltenen Objekte in der XML-Darstellung enthalten sind. Der Standardwert ist 2.

Der Standardwert kann für den Objekttyp in den Types.ps1xml Dateien überschrieben werden. Weitere Informationen finden Sie unter about_Types.ps1xml.

Type:Int32
Position:Named
Default value:2
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

Gibt den Typ der Codierung für die Zieldatei an. Der Standardwert ist Unicode.

Die zulässigen Werte für diesen Parameter sind wie folgt:

  • ASCII Verwendet einen ASCII-Zeichensatz (7-Bit).
  • BigEndianUnicode Verwendet UTF-16 mit der Big-End-Byte-Reihenfolge.
  • Default Verwendet die Codierung, die der aktiven Codeseite des Systems (in der Regel ANSI) entspricht.
  • OEM Verwendet die Codierung, die der aktuellen OEM-Codeseite des Systems entspricht.
  • Unicode Verwendet UTF-16 mit der Little-Endian Byte-Reihenfolge.
  • UTF7 Verwendet UTF-7.
  • UTF8 Verwendet UTF-8.
  • UTF32 Verwendet UTF-32 mit der Little-Endian Byte-Reihenfolge.
Type:String
Accepted values:ASCII, BigEndianUnicode, Default, OEM, Unicode, UTF7, UTF8, UTF32
Position:Named
Default value:Unicode
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Erzwingt die Ausführung des Befehls ohne Aufforderung zur Bestätigung durch den Benutzer.

Bewirkt, dass das Cmdlet das Schreibschutzattribut der Ausgabedatei bei Bedarf deaktiviert. Das Cmdlet versucht, das Schreibschutzattribut zurückzusetzen, wenn der Befehl abgeschlossen ist.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Gibt das zu konvertierende Objekt an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die Objekte abgerufen werden. Sie können objekte auch an Export-Clixml.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

Gibt den Pfad zur Datei an, wo die XML-Darstellung des Objekts gespeichert wird. Im Gegensatz zu Path wird der Wert des LiteralPath-Parameters genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.

Type:String
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NoClobber

Gibt an, dass das Cmdlet den Inhalt einer vorhandenen Datei nicht überschreibt. Wenn eine Datei im angegebenen Pfad vorhanden ist, Export-Clixml wird die Datei standardmäßig ohne Warnung überschrieben.

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Gibt den Pfad zur Datei an, wo die XML-Darstellung des Objekts gespeichert wird.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

PSObject

Sie können jedes Objekt an dieses Cmdlet weiterleiten.

Ausgaben

FileInfo

Dieses Cmdlet gibt ein FileInfo -Objekt zurück, das die erstellte Datei mit den gespeicherten Daten darstellt.