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-Clixml
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 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-Process
dö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.credential
temsil 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-Clixml
gönderir ve ilk komutta belirttiğiniz yola $Credxmlpath
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 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.0
0.0
0.0
değeri, cmdlet'in nesneleri sayamadığı, 1.0
sayının tam olduğu ve ile arasındaki 0.0
1.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
Bu cmdlet'in yolunu içeren bir dizeyi kanala geçirebilirsiniz.
Çıkışlar
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>
.
İlişkili Bağlantılar
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin