Export-Clixml
Membuat representasi berbasis XML dari objek atau objek dan menyimpannya dalam file.
Sintaks
ByPath (Default)
Export-Clixml
[-Path] <String>
-InputObject <PSObject>
[-Depth <Int32>]
[-Force]
[-NoClobber]
[-Encoding <Encoding>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Export-Clixml
-LiteralPath <String>
-InputObject <PSObject>
[-Depth <Int32>]
[-Force]
[-NoClobber]
[-Encoding <Encoding>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
Cmdlet Export-Clixml menserialisasikan objek ke dalam representasi berbasis XML Common Language Infrastructure (CLI) menyimpannya dalam file. Anda kemudian dapat menggunakan cmdlet Import-Clixml untuk membuat ulang objek yang disimpan berdasarkan konten file tersebut. Untuk informasi selengkapnya tentang CLI, lihatkemandirian bahasa
Cmdlet ini mirip dengan ConvertTo-Xml, kecuali bahwa Export-Clixml menyimpan XML yang dihasilkan dalam file.
ConvertTo-Xml mengembalikan XML, sehingga Anda dapat terus memprosesnya di PowerShell.
Penggunaan Export-Clixml yang 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 dikirimkan alur.
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
Cmdlet Get-Acl mendapatkan pendeskripsi keamanan file Test.txt. Ini mengirim objek ke bawah alur untuk meneruskan deskriptor keamanan ke Export-Clixml. Representasi berbasis XML dari objek disimpan dalam file bernama FileACL.xml.
Cmdlet Import-Clixml membuat objek dari XML dalam file FileACL.xml. Kemudian, ia menyimpan objek dalam variabel $fileacl.
Contoh 3: Mengenkripsi objek kredensial yang diekspor di Windows
Dalam contoh ini, mengingat kredensial yang telah Anda simpan dalam variabel $Credential dengan menjalankan cmdlet Get-Credential, Anda dapat menjalankan cmdlet 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.
$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
Cmdlet Export-Clixml mengenkripsi objek kredensial dengan menggunakan Windows Data Protection API. Enkripsi memastikan bahwa hanya akun pengguna Anda di komputer yang dapat mendekripsi konten objek kredensial.
File CLIXML yang diekspor tidak dapat digunakan pada komputer lain atau oleh pengguna lain.
Dalam contoh, file tempat kredensial disimpan diwakili oleh TestScript.ps1.credential. Ganti
Anda mengirim objek kredensial ke bawah alur untuk 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 variabel $Credential menggunakan cmdlet Get-Credential. Kemudian kita menggunakan 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 Get-Content dalam 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 konfirmasi sebelum menjalankan cmdlet.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | Cf |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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 file Types.ps1xml. Untuk informasi selengkapnya, lihat about_Types.ps1xml.
Properti parameter
| Jenis: | Int32 |
| Nilai default: | 2 |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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: Mengenkripsi dalam format UTF-16 menggunakan urutan byte big-endian. -
bigendianutf32: Mengenkode dalam format UTF-32 menggunakan urutan byte big-endian. -
oem: Menggunakan pengkodean default untuk program MS-DOS dan program konsol. -
unicode: Mengode 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
Dimulai dengan PowerShell 7.4, Anda dapat menggunakan nilai
Nota
UTF-7* tidak lagi disarankan untuk digunakan. Sejak PowerShell 7.1, sebuah peringatan akan ditulis jika Anda menentukan utf7 untuk parameter Pengodean .
Properti parameter
| Jenis: | Encoding |
| Nilai default: | UTF8NoBOM |
| Nilai yang diterima: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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.
Properti parameter
| Jenis: | PSObject |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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 wildcard. Jika jalur menyertakan karakter escape, bungkus jalur tersebut dalam tanda kutip tunggal. Tanda kutip tunggal memberi tahu PowerShell untuk tidak menginterpretasikan karakter apa pun sebagai urutan escape.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | PSPath, LP |
Kumpulan parameter
ByLiteralPath
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-NoClobber
Menunjukkan bahwa cmdlet tidak menimpa konten file yang ada. Secara default, jika file ada di jalur yang ditentukan, Export-Clixml menimpa file tanpa peringatan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | NoOverwrite |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Path
Menentukan jalur ke file tempat representasi XML objek akan disimpan.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
ByPath
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-WhatIf
Menunjukkan apa yang akan terjadi ketika cmdlet dijalankan. Cmdlet tidak dijalankan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | wi |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
PSObject
Anda dapat menyalurkan objek apa pun ke cmdlet ini.
Output
FileInfo
Cmdlet ini mengembalikan objek FileInfo yang mewakili file yang dibuat dengan data yang disimpan.