Import-Clixml (Microsoft.PowerShell.Utility)


Import-Clixml

Modül:
Microsoft.PowerShell.Utility

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

Sözdizimi

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

Tanım

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

CLIXML verileri, PowerShell nesnelerine geri seri durumdan çıkarılır. Ancak seri durumdan çıkarılan nesneler canlı nesneler değildir. Bunlar serileştirme sırasındaki nesnelerin anlık görüntüsüdür. Seri durumdan çıkarılan nesneler özellikleri içerir ancak yöntemleri içermez.

TypeNames özelliği, Serialized ön ekiyle orijinal tür adını içerir. Örnek 3, seri durumdan çıkarılan bir nesnenin TypeNames özelliğini göstermektedir.

Import-Clixml, dosyanın kodlama biçimini algılamak için bayt sırası işaretini (BOM) kullanır. Dosyanın BOM'u yoksa kodlamanın UTF8 olduğu varsayılır.

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

Örnekler

Örnek 1: Serileştirilmiş bir dosyayı içe aktarın ve bir nesneyi yeniden oluşturun

Bu örnek, Get-Process tarafından döndürülen işlem bilgilerinin serileştirilmiş bir kopyasını kaydetmek için Export-Clixml cmdlet'ini kullanır. Import-Clixml serileştirilmiş dosyanın içeriğini alır ve $Processes değişkeninde saklanan 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çe aktarın

Bu örnekte, Get-Credential cmdlet'ini çalıştırarak $Credential değişkeninde sakladığınız bir kimlik bilgisi verildiğinde, Export-Clixml<'i çalıştırabilirsiniz. Kimlik bilgilerini diske kaydetmek için /code> cmdlet'i.

Bu önemli

Export-Clixml yalnızca Windows'ta şifrelenmiş kimlik bilgilerini dışa aktarır. MacOS ve Linux gibi Windows olmayan işletim sistemlerinde kimlik bilgileri düz metin olarak dışa 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

Export-Clixml cmdlet'i, 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ışa aktarılan CLIXML dosyası farklı bir bilgisayarda veya farklı bir kullanıcı tarafından kullanılamaz.

Örnekte, kimlik bilgilerinin saklandığı dosya TestScript.ps1.credential ile temsil edilmektedir. TestScript'i, kimlik bilgilerini yüklediğiniz betiğin adıyla değiştirin.

Kimlik bilgisi nesnesini işlem hattından Export-Clixml'e gönderirsiniz ve onu ilk komutta belirttiğiniz $Credxmlpath yoluna kaydedersiniz.

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

Örnek 3: Seri durumdan çıkarılan bir nesnenin TypeNames özelliğini inceleyin

Bu örnek, CLIXML verileri olarak depolanan bir nesnenin içe aktarılmasını gösterir. Veriler bir PowerShell nesnesine seri durumdan çıkarılır. Ancak seri durumdan çıkarılan nesne canlı bir nesne değildir. Bunlar serileştirme sırasındaki nesnelerin anlık görüntüsüdür. Seri durumdan çıkarılan nesneler özellikleri içerir ancak yöntemleri 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

$original içindeki nesnenin türünün System.Management.Automation.PSCustomObject olduğunu, ancak $deserialized içindeki nesnenin türünün şöyle olduğunu unutmayın: Serialized.System.Management.Automation.PSCustomObject. Ayrıca seri durumdan çıkarılan nesnede GetDisplay() yöntemi eksik.

Parametreler

-First

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

Tip :

UInt64

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-IncludeTotalCount

Veri kümesindeki toplam nesne sayısını ve ardından seçilen nesneleri bildirir. Cmdlet toplam sayımı belirleyemezse Bilinmeyen toplam sayım'ı görüntüler. Tamsayı, toplam sayım değerinin güvenilirliğini gösteren bir Doğruluk özelliğine sahiptir. Doğruluk değeri 0,0 ile 1,0 arasında değişir; burada 0,0, cmdlet'in nesneleri sayamadığı anlamına gelir. 1,0, sayımın kesin olduğu anlamına gelir ve 0,0 ile 1,0 arasındaki bir değer, giderek daha güvenilir bir tahmine işaret eder.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-LiteralPath

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

Tip :

String[]

Takma adlar:

PSPath, LP

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

True

Boru hattı girişini kabul edin:

True

Joker karakterleri kabul et:

False

-Path

XML dosyalarının yolunu belirtir.

Tip :

String[]

Konum:

0

Varsayılan değer:

None

Gerekli:

True

Boru hattı girişini kabul edin:

True

Joker karakterleri kabul et:

False

-Skip

Belirtilen sayıda nesneyi yok sayar ve ardından kalan nesneleri alır. Atlanacak nesne sayısını girin.

Tip :

UInt64

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

Girişler

Dize

Bu cmdlet'in yolunu içeren bir dizeyi yönlendirebilirsiniz.

Çıkışlar

PSObject

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

Notlar

Bir parametre için birden fazla değer belirtirken değerleri ayırmak için virgül kullanın. Örneğin, , .

İlgili makaleler