Import-Clixml
Mengimpor file CLIXML dan membuat objek terkait di PowerShell.
Sintaks
Import-Clixml
[-Path] <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Import-Clixml
-LiteralPath <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Deskripsi
Import-Clixml
Cmdlet mengimpor objek yang telah diserialisasikan ke dalam file XML Common Language Infrastructure (CLI). Penggunaan Import-Clixml
berharga pada komputer Windows adalah mengimpor kredensial dan string aman yang diekspor sebagai XML aman menggunakan Export-Clixml
.
Contoh #2 menunjukkan cara menggunakan Import-Clixml
untuk mengimpor objek kredensial yang aman.
Data CLIXML dideserialisasi kembali ke objek PowerShell. Namun, objek yang dideserialisasi bukan objek langsung. Mereka adalah rekam jepret objek pada saat serialisasi. Objek yang dideserialisasi mencakup properti tetapi tidak ada metode.
Properti TypeNames berisi nama jenis asli yang diawali dengan Deserialized
.
Contoh #3 memperlihatkan properti TypeNames dari objek yang dideserialisasi.
Import-Clixml
menggunakan byte-order-mark (BOM) untuk mendeteksi format pengodean file. Jika file tidak memiliki BOM, diasumsikan pengodeannya adalah UTF8.
Untuk informasi selengkapnya tentang CLI, lihat Kemandirian bahasa.
Contoh
Contoh 1: Mengimpor file berseri dan membuat ulang objek
Contoh ini menggunakan Export-Clixml
cmdlet untuk menyimpan salinan berseri informasi proses yang dikembalikan oleh Get-Process
. Import-Clixml
mengambil konten file serial dan membuat ulang objek yang disimpan dalam $Processes
variabel.
Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml
Contoh 2: Mengimpor objek kredensial aman
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 dalam teks biasa.
$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 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 3: Periksa properti TypeNames dari objek yang dideserialisasi
Contoh ini menunjukkan mengimpor objek yang disimpan sebagai data CLIXML. Data dideserialisasi kembali ke objek PowerShell. Namun, objek yang dideserialisasi bukan objek langsung. Mereka adalah rekam jepret objek pada saat serialisasi. Objek yang dideserialisasi mencakup properti tetapi tidak ada metode.
$original = [pscustomobject] @{
Timestamp = Get-Date
Label = 'Meeting event'
}
$original | Add-Member -MemberType ScriptMethod -Name GetDisplay -Value {
'{0:yyyy-MM-dd HH:mm} {1}' -f $this.Timestamp, $this.Label
}
$original | Get-Member -MemberType ScriptMethod
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Label NoteProperty string Label=Meeting event
Timestamp NoteProperty System.DateTime Timestamp=1/31/2024 2:27:59 PM
GetDisplay ScriptMethod System.Object GetDisplay();
$original | Export-Clixml -Path event.clixml
$deserialized = Import-CliXml -Path event.clixml
$deserialized | Get-Member
TypeName: Deserialized.System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Label NoteProperty string Label=Meeting event
Timestamp NoteProperty System.DateTime Timestamp=1/31/2024 2:27:59 PM
Perhatikan bahwa jenis objek di $original
adalah System.Management.Automation.PSCustomObject, tetapi jenis objek di $deserialized
adalah Deserialized.System.Management.Automation.PSCustomObject. Selain itu GetDisplay()
, metode hilang dari objek yang dideserialisasi.
Parameter
-First
Hanya mendapatkan jumlah objek yang ditentukan. Masukkan jumlah objek yang akan didapatkan.
Jenis: | UInt64 |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-IncludeTotalCount
Melaporkan jumlah total objek dalam himpunan data diikuti oleh objek yang dipilih. Jika cmdlet tidak dapat menentukan jumlah total, cmdlet akan menampilkan Jumlah total yang tidak diketahui. Bilangan bulat memiliki properti Akurasi yang menunjukkan keandalan nilai jumlah total. Nilai Akurasi berkisar dari 0.0
ke 1.0
mana 0.0
berarti bahwa cmdlet tidak dapat menghitung objek, 1.0
berarti bahwa jumlahnya tepat, dan nilai antara 0.0
dan 1.0
menunjukkan perkiraan yang semakin dapat diandalkan.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-LiteralPath
Menentukan jalur ke file XML. 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 |
Position: | Named |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-Path
Menentukan jalur ke file XML.
Jenis: | String[] |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-Skip
Mengabaikan jumlah objek yang ditentukan lalu mendapatkan objek yang tersisa. Masukkan jumlah objek yang akan dilewati.
Jenis: | UInt64 |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
Anda dapat menyalurkan string yang berisi jalur ke cmdlet ini.
Output
Cmdlet ini mengembalikan objek yang dideserialisasi dari file XML yang disimpan.
Catatan
Saat menentukan beberapa nilai untuk parameter, gunakan koma untuk memisahkan nilai. Contohnya,<parameter-name> <value1>, <value2>
.