Export-Clixml
Bir nesnenin veya nesnelerin XML tabanlı bir gösterimini oluşturur ve bir dosyada depolar.
Syntax
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, bir nesnenin veya nesnenin Ortak Dil Altyapısı (CLI) XML tabanlı gösterimini oluşturur ve bir dosyada depolar. Ardından, kaydedilen nesneyi bu dosyanın içeriğine göre yeniden oluşturmak için cmdlet'ini kullanabilirsiniz Import-Clixml
.
CLI hakkında daha fazla bilgi için bkz . Dil bağımsızlığı.
Bu cmdlet, sonuçta elde edilen XML'yi bir dosyada depolaması Export-Clixml
dışında ile benzerdirConvertTo-Xml
. ConvertTo-XML
XML'yi döndürür, böylece PowerShell'de işlemeye devam edebilirsiniz.
Windows bilgisayarlarda değerli bir kullanımı Export-Clixml
, kimlik bilgilerini ve güvenli dizeleri 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. Bu bir testtir dizesinin bir gösterimidir.
"This is a test" | Export-Clixml -Path .\sample.xml
Dize This is a test
işlem hattına gönderilir. Export-Clixml
, geçerli dizinde adlı sample.xml
bir XML dosyası oluşturmak için Path parametresini kullanır.
Örnek 2: Nesneyi XML dosyasına aktarma
Bu örnekte, bir nesnenin XML dosyasına nasıl aktarılacağını ve ardından xml dosyasını 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
cmdlet'i Get-Acl
dosyanın güvenlik tanımlayıcısını Test.txt
alır. Güvenlik tanımlayıcısını öğesine geçirmek için nesnesini işlem hattına Export-Clixml
gönderir. Nesnenin XML tabanlı gösterimi adlı FileACL.xml
bir dosyada depolanır.
cmdlet'i Import-Clixml
dosyadaki XML'den FileACL.xml
bir nesne oluşturur. Ardından, nesnesini değişkenine $fileacl
kaydeder.
Örnek 3: Windows'ta dışarı aktarılan bir kimlik bilgisi nesnesini şifreleme
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 Unicode karakter dizisi olarak depolanan düz metin olarak dışarı aktarılır. Bu, biraz karartma 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
cmdlet'i Export-Clixml
Windows Veri Koruma API'sini kullanarak kimlik bilgileri 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
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ını kullanıma açma riskini ortadan kaldırır.
Örnek 4: Linux veya macOS'ta bir kimlik bilgisi nesnesini dışarı aktarma
Bu örnekte, cmdlet'ini kullanarak Get-Credential
değişkende $Credential
bir PSCredential oluştururuz. Ardından kimlik bilgilerini diske kaydetmek için kullanırız Export-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 Unicode karakter dizisi olarak depolanan düz metin olarak dışarı aktarılır. Bu, biraz karartma 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 çıktısı Get-Content
, XML dosyasındaki kimlik bilgilerine odaklanmak için kesilmiştir. Parolanın düz metin değerinin XML dosyasında tarafından Format-Hex
kanıtlandığı şekilde 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.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Depth
XML gösterimine kaç kapsanan nesne düzeyi eklendiğini belirtir. 2
varsayılan değerdir.
Dosyalardaki nesne türü Types.ps1xml
için varsayılan değer geçersiz kılınabilir. Daha fazla bilgi için bkz . about_Types.ps1xml.
Type: | Int32 |
Position: | Named |
Default value: | 2 |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Hedef dosya için kodlama türünü belirtir. utf8NoBOM
varsayılan değerdir.
Bu parametre için kabul edilebilir değerler şunlardır:
ascii
: ASCII (7 bit) karakter kümesi için kodlamayı kullanır.bigendianunicode
: Big-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.bigendianutf32
: Big-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 Sipariş İşareti (BOM) ile UTF-8 biçiminde kodlarutf8NoBOM
: Bayt Sipariş İşareti (BOM) olmadan UTF-8 biçiminde kodlarutf32
: UTF-32 biçiminde kodlar.
PowerShell 6.2'den başlayarak Kodlama parametresi, kayıtlı kod sayfalarının (gibi) sayısal kimliklerine veya kayıtlı kod sayfalarının (gibi-Encoding 1251
-Encoding "windows-1251"
) dize adlarına da izin verir. Daha fazla bilgi için Encoding.CodePage için .NET belgelerine bakın.
Not
UTF-7* uygulamasının artık kullanılması önerilmez. PowerShell 7.1'den itibaren Kodlama parametresini belirtirseniz utf7
bir uyarı yazılır.
Type: | Encoding |
Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 öğesine Export-Clixml
de yöneltebilirsiniz.
Type: | PSObject |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Nesnenin XML gösteriminin depolandığı 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.
Type: | String |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | 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ı vermeden dosyanın üzerine yazar.
Type: | SwitchParameter |
Aliases: | NoOverwrite |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Nesnenin XML gösteriminin depolandığı dosyanın yolunu belirtir.
Type: | String |
Position: | 0 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Cmdlet çalıştırılıyorsa ne olacağını gösterir. Cmdlet çalıştırılmıyor.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
Bu cmdlet'e herhangi bir nesnenin işlem hattını oluşturabilirsiniz.
Çıkışlar
Bu cmdlet, depolanan verilerle oluşturulan dosyayı temsil eden bir FileInfo nesnesi döndürür.
İlişkili Bağlantılar
Geri Bildirim
Gönderin ve geri bildirimi görüntüleyin