Export-Clixml
Membuat representasi berbasis XML dari objek atau objek dan menyimpannya dalam file.
Sintaks
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>]
Deskripsi
Export-Clixml
Cmdlet menserialisasikan objek ke dalam representasi berbasis XML Common Language Infrastructure (CLI) menyimpannya dalam file. Anda kemudian dapat menggunakan Import-Clixml
cmdlet untuk membuat ulang objek yang disimpan berdasarkan konten file tersebut. Untuk informasi selengkapnya tentang CLI, lihat Kemandirian bahasa.
Cmdlet ini mirip ConvertTo-Xml
dengan , kecuali yang menyimpan XML yang Export-Clixml
dihasilkan dalam file. ConvertTo-XML
mengembalikan XML, sehingga Anda dapat terus memprosesnya di PowerShell.
Penggunaan Export-Clixml
berharga pada komputer Windows adalah mengekspor kredensial dan mengamankan string dengan aman sebagai XML. Misalnya, lihat Contoh 3.
Contoh
Contoh 1: Mengekspor string ke file XML
Contoh ini membuat file XML yang disimpan di direktori saat ini, representasi string Ini adalah pengujian.
"This is a test" | Export-Clixml -Path .\sample.xml
String This is a test
dikirim ke alur. Export-Clixml
menggunakan parameter Jalur untuk membuat file XML bernama sample.xml
di direktori saat ini.
Contoh 2: Mengekspor objek ke file XML
Contoh ini memperlihatkan cara mengekspor objek ke file XML lalu membuat objek dengan mengimpor XML dari file.
Get-Acl C:\test.txt | Export-Clixml -Path .\FileACL.xml
$fileacl = Import-Clixml -Path .\FileACL.xml
Get-Acl
Cmdlet mendapatkan pendeskripsi Test.txt
keamanan file. Ini mengirimkan objek ke alur untuk meneruskan deskriptor keamanan ke Export-Clixml
. Representasi berbasis XML dari objek disimpan dalam file bernama FileACL.xml
.
Import-Clixml
Cmdlet membuat objek dari XML dalam FileACL.xml
file. Kemudian, ia menyimpan objek dalam $fileacl
variabel.
Contoh 3: Mengenkripsi objek kredensial yang diekspor di Windows
Dalam contoh ini, diberi kredensial yang telah Anda simpan dalam $Credential
variabel dengan menjalankan Get-Credential
cmdlet, Anda dapat menjalankan Export-Clixml
cmdlet untuk menyimpan kredensial ke disk.
Penting
Export-Clixml
hanya mengekspor kredensial terenkripsi pada Windows. Pada sistem operasi non-Windows seperti macOS dan Linux, kredensial diekspor sebagai teks biasa yang disimpan sebagai array karakter Unicode. Ini menyediakan beberapa obfuscation tetapi tidak menyediakan enkripsi.
$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
Export-Clixml
Cmdlet mengenkripsi objek kredensial dengan menggunakan API Perlindungan Data Windows. Enkripsi memastikan bahwa hanya akun pengguna Anda di komputer yang dapat mendekripsi konten objek kredensial.
File yang diekspor CLIXML
tidak dapat digunakan pada komputer lain atau oleh pengguna lain.
Dalam contoh, file tempat kredensial disimpan diwakili oleh TestScript.ps1.credential
. Ganti TestScript dengan nama skrip tempat Anda memuat kredensial.
Anda mengirim objek kredensial ke bawah alur ke Export-Clixml
, dan menyimpannya ke jalur, $Credxmlpath
, yang Anda tentukan dalam perintah pertama.
Untuk mengimpor kredensial secara otomatis ke dalam skrip Anda, jalankan dua perintah akhir. Jalankan Import-Clixml
untuk mengimpor objek kredensial aman ke dalam skrip Anda. Impor ini menghilangkan risiko mengekspos kata sandi teks biasa dalam skrip Anda.
Contoh 4: Mengekspor objek kredensial di Linux atau macOS
Dalam contoh ini, kami membuat PSCredential dalam $Credential
variabel menggunakan Get-Credential
cmdlet. Kemudian kita gunakan Export-Clixml
untuk menyimpan kredensial ke disk.
Penting
Export-Clixml
hanya mengekspor kredensial terenkripsi pada Windows. Pada sistem operasi non-Windows seperti macOS dan Linux, kredensial diekspor sebagai teks biasa yang disimpan sebagai array karakter Unicode. Ini menyediakan beberapa obfuscation tetapi tidak menyediakan enkripsi.
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
Output dalam Get-Content
contoh ini telah dipotong untuk fokus pada informasi kredensial dalam file XML. Perhatikan bahwa nilai teks biasa kata sandi disimpan dalam file XML sebagai array karakter Unicode sebagaimana dibuktikan oleh Format-Hex
. Jadi nilai dikodekan tetapi tidak dienkripsi.
Parameter
-Confirm
Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.
Jenis: | SwitchParameter |
Alias: | cf |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Depth
Menentukan berapa banyak tingkat objek yang terkandung yang disertakan dalam representasi XML. Nilai defaultnya adalah 2
.
Nilai default dapat diganti untuk jenis objek dalam Types.ps1xml
file. Untuk informasi selengkapnya, lihat about_Types.ps1xml.
Jenis: | Int32 |
Position: | Named |
Nilai default: | 2 |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Encoding
Menentukan jenis pengodean untuk file target. Nilai defaultnya adalah utf8NoBOM
.
Nilai yang dapat diterima untuk parameter ini adalah sebagai berikut:
ascii
: Menggunakan pengodean untuk set karakter ASCII (7-bit).ansi
: Menggunakan pengodean untuk halaman kode ANSI budaya saat ini. Opsi ini ditambahkan dalam 7.4.bigendianunicode
: Mengodekan dalam format UTF-16 menggunakan urutan byte big-endian.bigendianutf32
: Mengodekan dalam format UTF-32 menggunakan urutan byte big-endian.oem
: Menggunakan pengodean default untuk MS-DOS dan program konsol.unicode
: Mengodekan dalam format UTF-16 menggunakan urutan byte little-endian.utf7
: Mengodekan dalam format UTF-7.utf8
: Mengodekan dalam format UTF-8.utf8BOM
: Mengodekan dalam format UTF-8 dengan Byte Order Mark (BOM)utf8NoBOM
: Mengodekan dalam format UTF-8 tanpa Byte Order Mark (BOM)utf32
: Mengodekan dalam format UTF-32.
Dimulai dengan PowerShell 6.2, parameter Pengodean juga memungkinkan ID numerik halaman kode terdaftar (seperti -Encoding 1251
) atau nama string halaman kode terdaftar (seperti -Encoding "windows-1251"
). Untuk informasi selengkapnya, lihat dokumentasi .NET untuk Encoding.CodePage.
Dimulai dengan PowerShell 7.4, Anda dapat menggunakan Ansi
nilai untuk parameter Pengodean untuk meneruskan ID numerik untuk halaman kode ANSI budaya saat ini tanpa harus menentukannya secara manual.
Catatan
UTF-7* tidak lagi disarankan untuk digunakan. Pada PowerShell 7.1, peringatan ditulis jika Anda menentukan utf7
untuk parameter Pengodean .
Jenis: | Encoding |
Nilai yang diterima: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Nilai default: | UTF8NoBOM |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Force
Memaksa perintah untuk dijalankan tanpa meminta konfirmasi pengguna.
Menyebabkan cmdlet menghapus atribut baca-saja dari file output jika perlu. Cmdlet akan mencoba mengatur ulang atribut baca-saja saat perintah selesai.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-InputObject
Menentukan objek yang akan dikonversi. Masukkan variabel yang berisi objek, atau ketik perintah atau ekspresi yang mendapatkan objek. Anda juga dapat menyalurkan objek ke Export-Clixml
.
Jenis: | PSObject |
Position: | Named |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-LiteralPath
Menentukan jalur ke file tempat representasi XML objek akan disimpan. Tidak seperti Path, nilai parameter LiteralPath digunakan persis seperti yang ditik. Tidak ada karakter yang ditafsirkan sebagai kartubebas. Jika jalur menyertakan karakter escape, sertakan dalam tanda kutip tunggal. Tanda kutip tunggal memberi tahu PowerShell untuk tidak menginterpretasikan karakter apa pun sebagai urutan escape.
Jenis: | String |
Alias: | PSPath, LP |
Position: | Named |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-NoClobber
Menunjukkan bahwa cmdlet tidak menimpa konten file yang ada. Secara default, jika file ada di jalur yang ditentukan, Export-Clixml
timpa file tanpa peringatan.
Jenis: | SwitchParameter |
Alias: | NoOverwrite |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Path
Menentukan jalur ke file tempat representasi XML objek akan disimpan.
Jenis: | String |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-WhatIf
Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.
Jenis: | SwitchParameter |
Alias: | wi |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
Anda dapat menyalurkan objek apa pun ke cmdlet ini.
Output
Cmdlet ini mengembalikan objek FileInfo yang mewakili file yang dibuat dengan data yang disimpan.