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