Export-Clixml
Nesnenin veya nesnelerin XML tabanlı bir gösterimini oluşturur ve bir dosyada depolar.
Sözdizimi
Export-Clixml
[-Depth <Int32>]
[-Path] <String>
-InputObject <PSObject>
[-Force]
[-NoClobber]
[-Encoding <Encoding>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Export-Clixml
[-Depth <Int32>]
-LiteralPath <String>
-InputObject <PSObject>
[-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-Xml
ile 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-Clixml
geçirmek için nesnesini işlem hattına gönderir. Nesnenin XML tabanlı gösterimi FileACL.xml
adlı 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.credential
ile temsil edilir.
TestScript yerine kimlik bilgilerini yüklemekte olduğunuz betiğin adını yazın.
kimlik bilgisi nesnesini Export-Clixml
için işlem hattının aşağısına gönderir ve ilk komutta belirttiğiniz $Credxmlpath
yoluna 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-Hex
tarafı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.
Tür: | SwitchParameter |
Diğer adlar: | cf |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Depth
XML gösterimine kaç kapsanan nesne düzeyi eklendiğini belirtir. Varsayılan değer 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.
Tür: | Int32 |
Position: | Named |
Default value: | 2 |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Encoding
Hedef dosya için kodlama türünü belirtir. Varsayılan değer 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
: Little-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar. -
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 1251
gibi) 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.
Not
UTF-7* artık kullanılması önerilmez. PowerShell 7.1'den itibaren, utf7
parametresi için belirtirseniz bir uyarı yazılır.
Tür: | Encoding |
Kabul edilen değerler: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Tür: | PSObject |
Position: | Named |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | 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, 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.
Tür: | String |
Diğer adlar: | PSPath, LP |
Position: | Named |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Tür: | SwitchParameter |
Diğer adlar: | NoOverwrite |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Path
Nesnenin XML gösteriminin depolanacağı dosyanın yolunu belirtir.
Tür: | String |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-WhatIf
Cmdlet çalıştırılırsa ne olacağını gösterir. Cmdlet çalıştırılmıyor.
Tür: | SwitchParameter |
Diğer adlar: | wi |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
Herhangi bir nesneyi bu cmdlet'e işlem hattıyla geçirebilirsiniz.
Çıkışlar
Bu cmdlet, depolanan verilerle oluşturulan dosyayı temsil eden bir FileInfo nesnesi döndürür.
İlişkili Bağlantılar
PowerShell