Import-Clixml

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

Syntax

ByPath (Varsayılan)

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

ByLiteralPath

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

Description

Import-Clixml cmdlet'i, seri hale getirilmiş nesneleri Ortak Dil Altyapısı (CLI) XML dosyasına aktarır. Windows bilgisayarlarda Import-Clixml değerli bir kullanımı, Export-Clixmlkullanılarak gü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 Import-Clixml nasıl kullanılacağını 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, Deserializedön ekli ö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 sırası işaretini (BOM) kullanır. Dosyada BOM yoksa, kodlamanın UTF8 olduğunu varsayar.

Uyarı

[System.Management.Automation.ScriptBlock] nesneleri CLIXML'deki <SKB> öğesinde serileştirilir. Ancak, <SKB> öğesi her zaman Dizeler olarak seri durumdan çıkarılır.

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 örnekte, Export-Clixmltarafından döndürülen işlem bilgilerinin serileştirilmiş bir kopyasını kaydetmek için Get-Process cmdlet'i kullanılır. Import-Clixml, serileştirilmiş dosyanın içeriğini alır ve $Processes değişkeninde 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, $Credential cmdlet'ini çalıştırarak Get-Credential değişkeninde depoladığınız bir kimlik bilgisi verdiyseniz, kimlik bilgilerini diske kaydetmek için Export-Clixml cmdlet'ini çalıştırabilirsiniz.

Ö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

Export-Clixml cmdlet'i Windows Veri Koruma API'sinikullanarak 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 dosyası farklı bir bilgisayarda veya farklı bir kullanıcı tarafından kullanılamaz.

Örnekte, kimlik bilgilerinin depolandığı dosya TestScript.ps1.credentialile temsil edilir. TestScript yerine kimlik bilgilerini yüklemekte olduğunuz betiğin adını yazın.

kimlik bilgisi nesnesini Export-Clixmliçin işlem hattının aşağısına gönderir ve ilk komutta belirttiğiniz $Credxmlpathyoluna kaydedersiniz.

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 Import-Clixml çalıştırın. 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

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

Parametreler

-First

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

Parametre özellikleri

Tür:UInt64
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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üler. Tamsayı, toplam sayı değerinin güvenilirliğini gösteren bir Doğruluk özelliğine sahiptir. Doğruluğu değeri 0.0 ile 1.0 arasında değişir; burada 0.0 cmdlet'in nesneleri sayamadığı, 1.0 sayının tam olduğu ve 0.0 ile 1.0 arasındaki bir değer giderek daha güvenilir bir tahmin olduğunu gösterir.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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, yolu tek tırnak işaretleriyle çevreleyin. Tek tırnak işaretleri, PowerShell'in hiçbir karakteri kaçış dizisi olarak yorumlamamasını sağlar.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:PSPath, LP

Parametre kümeleri

ByLiteralPath
Position:Named
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:True
Kalan bağımsız değişkenlerden elde edilen değer:False

-Path

XML dosyalarının yolunu belirtir.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

ByPath
Position:0
Zorunlu:True
İşlem hattından gelen değer:True
Özellik adına göre işlem hattından gelen değer:True
Kalan bağımsız değişkenlerden elde edilen değer:False

-Skip

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

Parametre özellikleri

Tür:UInt64
Default value:False
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

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>.