Import-Clixml

CliXML dosyasını içeri aktarır ve PowerShell'de ilgili nesneleri oluşturur.

Syntax

Import-Clixml
      [-Path] <String[]>
      [-IncludeTotalCount]
      [-Skip <UInt64>]
      [-First <UInt64>]
      [<CommonParameters>]
Import-Clixml
      -LiteralPath <String[]>
      [-IncludeTotalCount]
      [-Skip <UInt64>]
      [-First <UInt64>]
      [<CommonParameters>]

Description

Cmdlet, Import-Clixml seri hale getirilmiş nesneleri Ortak Dil Altyapısı (CLI) XML dosyasına aktarır. Windows bilgisayarlarda değerli bir kullanımı Import-Clixml , kullanılarak Export-Clixmlgüvenli XML olarak dışarı aktarılan kimlik bilgilerini ve güvenli dizeleri içeri aktarmaktır. Örnek #2 , güvenli bir kimlik bilgisi nesnesini içeri aktarmak için nasıl kullanılacağını Import-Clixml gösterir.

CLIXML verileri PowerShell nesnelerine seri durumdan çıkarılır. Ancak seri durumdan çıkarılmış nesneler canlı bir nesne değildir. Bunlar, serileştirme sırasında nesnelerin anlık görüntüsü. Seri durumdan çıkarılmış nesneler özellikleri içerir ancak yöntem içermez.

TypeNames özelliği, ön ekli Deserializedözgün tür adını içerir. Örnek #3 , seri durumdan çıkarılmış bir nesnenin TypeNames özelliğini gösterir.

Import-Clixml , dosyanın kodlama biçimini algılamak için bayt-sipariş işaretini (BOM) kullanır. Dosyada BOM yoksa, kodlamanın UTF8 olduğunu varsayar.

CLI hakkında daha fazla bilgi için bkz . Dil bağımsızlığı.

Örnekler

Örnek 1: Seri hale getirilmiş bir dosyayı içeri aktarma ve nesneyi yeniden oluşturma

Bu örnek, Export-Clixml tarafından Get-Processdöndürülen işlem bilgilerinin serileştirilmiş bir kopyasını kaydetmek için cmdlet'ini kullanır. Import-Clixml serileştirilmiş dosyanın içeriğini alır ve değişkeninde $Processes depolanan bir nesneyi yeniden oluşturur.

Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml

Örnek 2: Güvenli bir kimlik bilgisi nesnesini içeri aktarma

Bu örnekte, cmdlet'ini çalıştırarak Get-Credential değişkende $Credential depoladığınız bir kimlik bilgisi verdiyseniz, kimlik bilgilerini diske kaydetmek için cmdlet'ini çalıştırabilirsinizExport-Clixml.

Önemli

Export-Clixml yalnızca Windows'ta şifrelenmiş kimlik bilgilerini dışarı aktarır. macOS ve Linux gibi Windows dışı işletim sistemlerinde kimlik bilgileri düz metin olarak dışarı aktarılır.

$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'i Export-Clixml Windows Veri Koruma API'sini kullanarak kimlik bilgisi nesnelerini şifreler. Şifreleme, yalnızca kullanıcı hesabınızın kimlik bilgisi nesnesinin içeriğinin şifresini çözebilmesini sağlar. Dışarı aktarılan CLIXML dosya farklı bir bilgisayarda veya farklı bir kullanıcı tarafından kullanılamaz.

Örnekte, kimlik bilgilerinin depolandığı dosya ile TestScript.ps1.credentialtemsil edilir. TestScript'i, kimlik bilgilerini yüklemekte olduğunuz betiğin adıyla değiştirin.

kimlik bilgisi nesnesini işlem hattının aşağısına Export-Clixmlgönderir ve ilk komutta belirttiğiniz yola $Credxmlpathkaydedersiniz.

Kimlik bilgilerini betiğinize otomatik olarak aktarmak için son iki komutu çalıştırın. Güvenli kimlik bilgisi nesnesini betiğinize aktarmak için komutunu çalıştırın Import-Clixml . Bu içeri aktarma işlemi, betiğinizde düz metin parolaları ortaya çıkarma riskini ortadan kaldırır.

Örnek 3: Seri durumdan çıkarılmış bir nesnenin TypeNames özelliğini inceleme

Bu örnekte CLIXML verileri olarak depolanan bir nesnenin içeri aktarılması gösterilmektedir. Veriler bir PowerShell nesnesine seri durumdan çıkarılır. Ancak seri durumdan çıkarılmış nesne canlı bir nesne değildir. Bunlar, serileştirme sırasında nesnelerin anlık görüntüsü. Seri durumdan çıkarılmış nesneler özellikleri içerir ancak yöntem içermez.

$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

içindeki $original nesnenin türünün System.Management.Automation.PSCustomObject olduğuna, ancak içindeki $deserialized nesnenin türünün Deserialized.System.Management.Automation.PSCustomObject olduğuna dikkat edin. Ayrıca, GetDisplay() seri durumdan çıkarılmış nesnede yöntemi eksik.

Parametreler

-First

Yalnızca belirtilen sayıda nesne alır. Alınacak nesne sayısını girin.

Type:UInt64
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IncludeTotalCount

Veri kümesindeki toplam nesne sayısını ve ardından seçili nesneleri raporlar. Cmdlet toplam sayıyı belirleyemezse Bilinmeyen toplam sayısı görüntülenir. Tamsayı, toplam sayı değerinin güvenilirliğini gösteren bir Doğruluk özelliğine sahiptir. Doğruluk 1.00.00.0 değeri, cmdlet'in nesneleri sayamadığı, 1.0 sayının tam olduğu ve ile arasındaki 0.01.0 bir değerin giderek daha güvenilir bir tahmin olduğu anlamına gelir.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

XML dosyalarının yolunu belirtir. Path'in aksine, LiteralPath parametresinin değeri tam olarak yazıldığı gibi kullanılır. Hiçbir karakter joker karakter olarak yorumlanmamıştır. Yol kaçış karakterleri içeriyorsa, tek tırnak içine alın. Tek tırnak işaretleri PowerShell'e hiçbir karakteri kaçış dizisi olarak yorumlamaması gerektiğini söyler.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

XML dosyalarının yolunu belirtir.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Skip

Belirtilen nesne sayısını yoksayar ve kalan nesneleri alır. Atlana nesne sayısını girin.

Type:UInt64
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Girişler

String

Bu cmdlet'in yolunu içeren bir dizeyi kanala geçirebilirsiniz.

Çıkışlar

PSObject

Bu cmdlet, depolanan XML dosyalarından seri durumdan çıkarılmış nesneleri döndürür.

Notlar

Bir parametre için birden çok değer belirtirken, değerleri ayırmak için virgül kullanın. Örneğin, <parameter-name> <value1>, <value2>.