Export-Clixml
Nesnenin veya nesnelerin XML tabanlı bir gösterimini oluşturur ve bir dosyada depolar.
Syntax
ByPath (Varsayılan)
Export-Clixml
[-Path] <String>
-InputObject <PSObject>
[-Depth <Int32>]
[-Force]
[-NoClobber]
[-Encoding <Encoding>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Export-Clixml
-LiteralPath <String>
-InputObject <PSObject>
[-Depth <Int32>]
[-Force]
[-NoClobber]
[-Encoding <Encoding>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Export-Clixml cmdlet'i bir nesneyi Ortak Dil Altyapısı (CLI) XML tabanlı bir gösterimde seri hale getirerek bir dosyada depolar. Ardından Import-Clixml cmdlet'ini kullanarak kaydedilen nesneyi bu dosyanın içeriğine göre yeniden oluşturabilirsiniz. CLI hakkında daha fazla bilgi için bkz. Dil bağımsızlığı.
Bu cmdlet, ConvertTo-Xmlile benzerdir, ancak Export-Clixml sonuçta elde edilen XML dosyasını bir dosyada depolar.
ConvertTo-Xml XML'yi döndürerek PowerShell'de işlemeye devam edebilirsiniz.
Windows bilgisayarlarda Export-Clixml değerli bir kullanımı, kimlik bilgilerini dışarı aktarmak ve dizeleri güvenli bir şekilde XML olarak güvenli bir şekilde dışarı aktarmaktır. Örnek için bkz. Örnek 3.
Örnekler
Örnek 1: Dizeyi XML dosyasına aktarma
Bu örnek, geçerli dizinde depolayan bir XML dosyası oluşturur ve bu, dizenin bir gösterimidir. Bu bir test.
"This is a test" | Export-Clixml -Path .\sample.xml
This is a test dizesi işlem hattına gönderilir.
Export-Clixml, geçerli dizinde adlı bir XML dosyası oluşturmak için sample.xml parametresini kullanır.
Örnek 2: Nesneyi XML dosyasına dışarı aktarma
Bu örnekte bir nesnenin XML dosyasına nasıl dışarı aktarılacağını ve ardından xml dosyasını dosyadan içeri aktararak bir nesnenin nasıl oluşturulacağı gösterilmektedir.
Get-Acl C:\test.txt | Export-Clixml -Path .\FileACL.xml
$fileacl = Import-Clixml -Path .\FileACL.xml
Get-Acl cmdlet'i Test.txt dosyasının güvenlik tanımlayıcısını alır. güvenlik tanımlayıcısını Export-Clixmlgeçirmek için nesnesini işlem hattına gönderir. Nesnenin XML tabanlı gösterimi FileACL.xmladlı bir dosyada depolanır.
Import-Clixml cmdlet'i, FileACL.xml dosyasındaki XML'den bir nesne oluşturur. Ardından nesneyi $fileacl değişkenine kaydeder.
Örnek 3: Windows'ta dışarı aktarılan bir kimlik bilgisi nesnesini şifreleme
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 Unicode karakter dizisi olarak depolanan düz metin olarak dışarı aktarılır. Bu, bazı gizleme sağlar ancak şifreleme sağlamaz.
$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 o bilgisayardaki 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 4: Linux veya macOS'ta bir kimlik bilgisi nesnesini dışarı aktarma
Bu örnekte, cmdlet'ini kullanarak $Credential değişkeninde Get-Credential oluşturuyoruz. Ardından kimlik bilgilerini diske kaydetmek için Export-Clixml kullanırız.
Ö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 Unicode karakter dizisi olarak depolanan düz metin olarak dışarı aktarılır. Bu, bazı gizleme sağlar ancak şifreleme sağlamaz.
PS> $Credential = Get-Credential
PowerShell credential request
Enter your credentials.
User: User1
Password for user User1: ********
PS> $Credential | Export-Clixml ./cred2.xml
PS> Get-Content ./cred2.xml
...
<Props>
<S N="UserName">User1</S>
<SS N="Password">700061007300730077006f0072006400</SS>
</Props>
...
PS> 'password' | Format-Hex -Encoding unicode
Label: String (System.String) <52D60C91>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 p a s s w o r d
Bu örnekteki Get-Content çıktısı, XML dosyasındaki kimlik bilgilerine odaklanmak için kesilmiştir. Parolanın düz metin değerinin XML dosyasında, Format-Hextarafından kanıtlandığı gibi unicode karakter dizisi olarak depolandığını unutmayın. Bu nedenle değer kodlanır ancak şifrelenmez.
Parametreler
-Confirm
Cmdlet'i çalıştırmadan önce sizden onay ister.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | Cf |
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 |
-Depth
XML gösterimine kaç kapsanan nesne düzeyi eklendiğini belirtir. Varsayılan değer şudur: 2.
Types.ps1xml dosyalarındaki nesne türü için varsayılan değer geçersiz kılınabilir. Daha fazla bilgi için bkz. about_Types.ps1xml.
Parametre özellikleri
| Tür: | Int32 |
| Default value: | 2 |
| 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 |
-Encoding
Hedef dosya için kodlama türünü belirtir. Varsayılan değer şudur: utf8NoBOM.
Bu parametre için kabul edilebilir değerler aşağıdaki gibidir:
-
ascii: ASCII (7 bit) karakter kümesi için kodlamayı kullanır. -
ansi: Geçerli kültürün ANSI kod sayfasının kodlamasını kullanır. Bu seçenek 7.4'te eklendi. -
bigendianunicode: Büyük endian bayt sırasını kullanarak UTF-16 biçiminde kodlar. -
bigendianutf32: Büyük endian bayt sırasını kullanarak UTF-32 biçiminde kodlar. -
oem: MS-DOS ve konsol programları için varsayılan kodlamayı kullanır. -
unicode: Küçük-öncelikli bayt sırası kullanılarak UTF-16 biçiminde kodlanır. -
utf7: UTF-7 biçiminde kodlar. -
utf8: UTF-8 biçiminde kodlar. -
utf8BOM: Bayt Sırası İşareti (BOM) ile UTF-8 biçiminde kodlar -
utf8NoBOM: Bayt Sırası İşareti (BOM) olmadan UTF-8 biçiminde kodlar -
utf32: UTF-32 biçiminde kodlar.
PowerShell 6.2'den başlayarak, Kodlama parametresi, kayıtlı kod sayfalarının sayısal kimliklerine (-Encoding 1251gibi) veya kayıtlı kod sayfalarının dize adlarına (-Encoding "windows-1251"gibi) de izin verir. Daha fazla bilgi için Encoding.CodePageiçin .NET belgelerine bakın.
PowerShell 7.4'den başlayarak, Ansi parametresinin değerini kullanarak geçerli kültürün ANSI kod sayfasının sayısal kimliğini el ile belirtmek zorunda kalmadan geçirebilirsiniz.
Uyarı
UTF-7* artık kullanılması önerilmez. PowerShell 7.1'den itibaren, utf7 parametresi için belirtirseniz bir uyarı yazılır.
Parametre özellikleri
| Tür: | Encoding |
| Default value: | UTF8NoBOM |
| Kabul edilen değerler: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| 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 |
-Force
Komutu, kullanıcı onayı istemeden çalışmaya zorlar.
Gerekirse cmdlet'in çıkış dosyasının salt okunur özniteliğini temizlemesine neden olur. Komut tamamlandığında cmdlet salt okunur özniteliğini sıfırlamaya çalışır.
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 |
-InputObject
Dönüştürülecek nesneyi belirtir. Nesneleri içeren bir değişken girin veya nesneleri alan bir komut veya ifade yazın. Nesneleri Export-Clixml'e de yöneltebilirsiniz.
Parametre özellikleri
| Tür: | PSObject |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | True |
| İşlem hattından gelen değer: | True |
| Ö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
Nesnenin XML gösteriminin depolanacağı dosyanı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: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-NoClobber
Cmdlet'in var olan bir dosyanın içeriğinin üzerine yazılmadığını gösterir. Varsayılan olarak, belirtilen yolda bir dosya varsa, Export-Clixml uyarı olmadan dosyanın üzerine yazar.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | NoOverwrite |
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 |
-Path
Nesnenin XML gösteriminin depolanacağı dosyanı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: | 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 |
-WhatIf
Cmdlet çalıştırılırsa ne olacağını gösterir. Cmdlet çalıştırılmıyor.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | False |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | Wi |
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
PSObject
Herhangi bir nesneyi bu cmdlet'e işlem hattıyla geçirebilirsiniz.
Çıkışlar
FileInfo
Bu cmdlet, depolanan verilerle oluşturulan dosyayı temsil eden bir FileInfo nesnesi döndürür.