Export-Clixml
Erstellt eine XML-basierte Darstellung eines Objekts oder Objekts und speichert es 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 cmdlet Export-Clixml
serialisiert ein Objekt in einer XML-basierten CLI-Darstellung (Common Language Infrastructure) speichert es in einer Datei. Anschließend können Sie das cmdlet Import-Clixml
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
den resultierenden XML-Code in einer Datei speichert.
ConvertTo-XML
gibt den XML-Code zurück, sodass Sie ihn weiterhin in PowerShell verarbeiten können.
Eine wertvolle Verwendung von Export-Clixml
auf 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 namens sample.xml
im aktuellen Verzeichnis zu erstellen.
Beispiel 2: Exportieren eines Objekts in eine XML-Datei
In diesem Beispiel wird gezeigt, wie Sie ein Objekt in eine XML-Datei exportieren und dann ein Objekt erstellen, 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 cmdlet Get-Acl
ruft den Sicherheitsdeskriptor der Test.txt
Datei ab. Es sendet das Objekt an die Pipeline, um den Sicherheitsdeskriptor an Export-Clixml
zu übergeben. Die XML-basierte Darstellung des Objekts wird in einer Datei mit dem Namen FileACL.xml
gespeichert.
Das Cmdlet Import-Clixml
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 das Cmdlet Export-Clixml
ausführen, Get-Credential
um die Anmeldeinformationen auf dem Datenträger zu speichern, wenn Sie in der variablen $Credential
gespeichert haben.
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 cmdlet Export-Clixml
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.credential
dargestellt. Ersetzen Sie TestScript- durch den Namen des Skripts, mit dem Sie die Anmeldeinformationen laden.
Sie senden das Anmeldeinformationsobjekt an Export-Clixml
, und speichern es im Pfad $Credxmlpath
, den 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 Import-Clixml
aus, 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
Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Depth
Gibt an, wie viele Ebenen von enthaltenen Objekten 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.
Typ: | Int32 |
Position: | Named |
Standardwert: | 2 |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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 ASCII-Zeichensatz (7-Bit). -
BigEndianUnicode
verwendet UTF-16 mit der Big-End-Byte-Reihenfolge. -
Default
Verwendet die Codierung, die der aktiven Codepage des Systems entspricht (in der Regel ANSI). -
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-End-Byte-Reihenfolge.
Typ: | String |
Zulässige Werte: | ASCII, BigEndianUnicode, Default, OEM, Unicode, UTF7, UTF8, UTF32 |
Position: | Named |
Standardwert: | Unicode |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Force
Erzwingt die Ausführung des Befehls, ohne eine Benutzerbestätigung zu verlangen.
Bewirkt, dass das Cmdlet bei Bedarf das schreibgeschützte Attribut der Ausgabedatei löscht. Das Cmdlet versucht, das schreibgeschützte Attribut zurückzusetzen, wenn der Befehl abgeschlossen ist.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt das zu konvertierende Objekt an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der die Objekte abruft. Sie können Objekte auch an Export-Clixml
verrohren.
Typ: | PSObject |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-LiteralPath
Gibt den Pfad zu der Datei an, in der die XML-Darstellung des Objekts gespeichert wird. Im Gegensatz zu Pathwird der Wert des LiteralPath--Parameters genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Wildcards interpretiert. Wenn der Pfad Escapezeichen enthält, schließen Sie ihn in einfache Anführungszeichen ein. Einfache Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.
Typ: | String |
Aliase: | PSPath |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-NoClobber
Gibt an, dass das Cmdlet den Inhalt einer vorhandenen Datei nicht überschreibt. Wenn eine Datei im angegebenen Pfad vorhanden ist, überschreibt Export-Clixml
die Datei standardmäßig ohne Warnung.
Typ: | SwitchParameter |
Aliase: | NoOverwrite |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Path
Gibt den Pfad zu der Datei an, in der die XML-Darstellung des Objekts gespeichert wird.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können jedes Objekt an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt ein FileInfo Objekt zurück, das die erstellte Datei mit den gespeicherten Daten darstellt.