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.