Bagikan melalui


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 TestScript dengan nama skrip tempat Anda memuat kredensial.

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 yang menunjukkan keandalan nilai jumlah total. Nilai akurasi berkisar dari 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>.