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 $CredxmlpathExport-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,