Import-Clixml
Mengimpor file CLIXML dan membuat objek terkait di PowerShell.
Sintaks
ByPath (Default)
Import-Clixml
[-Path] <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
ByLiteralPath
Import-Clixml
-LiteralPath <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Deskripsi
cmdlet Import-Clixml mengimpor objek yang telah diserialisasikan ke dalam file XML Common Language Infrastructure (CLI). Penggunaan Import-Clixml yang 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.
Nota
[System.Management.Automation.ScriptBlock] objek diserialisasikan ke <SKB> dalam elemen di CLIXML. Namun, <SKB> elemen selalu dideserialisasi ke String.
Untuk informasi selengkapnya tentang CLI, lihatkemandirian bahasa
Contoh
Contoh 1: Mengimpor file berseri dan membuat ulang objek
Contoh ini menggunakan cmdlet Export-Clixml untuk menyimpan salinan serial informasi proses yang dikembalikan oleh Get-Process.
Import-Clixml mengambil konten file serial dan membuat ulang objek yang disimpan dalam variabel $Processes.
Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml
Contoh 2: Mengimpor objek kredensial aman
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 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
Cmdlet Export-Clixml mengenkripsi objek kredensial dengan menggunakan Windows Data Protection API. Enkripsi memastikan bahwa hanya akun pengguna Anda 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 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 $originalSystem.Management.Automation.PSCustomObject, tetapi jenis objek dalam $deserializedDeserialized.System.Management.Automation.PSCustomObject. Selain itu, metode GetDisplay() hilang dari objek yang dideserialisasi.
Parameter
-First
Hanya mendapatkan jumlah objek yang ditentukan. Masukkan jumlah objek yang akan didapatkan.
Properti parameter
| Jenis: | UInt64 |
| 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 |
-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 Tidak diketahui. Bilangan bulat memiliki properti Akurasi 0.0 hingga 1.0 di 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 andal.
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 |
-LiteralPath
Menentukan jalur ke file XML. 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: | True |
| Nilai dari argumen yang tersisa: | False |
-Path
Menentukan jalur ke file XML.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
ByPath
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-Skip
Mengabaikan jumlah objek yang ditentukan lalu mendapatkan objek yang tersisa. Masukkan jumlah objek yang akan dilewati.
Properti parameter
| Jenis: | UInt64 |
| 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 |
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
String
Anda dapat menyalurkan string yang berisi jalur ke cmdlet ini.
Output
PSObject
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>.