Megosztás a következőn keresztül:


Import-Clixml

Importál egy CLIXML-fájlt, és létrehozza a megfelelő objektumokat a PowerShellben.

Syntax

Import-Clixml
      [-Path] <String[]>
      [-IncludeTotalCount]
      [-Skip <UInt64>]
      [-First <UInt64>]
      [<CommonParameters>]
Import-Clixml
      -LiteralPath <String[]>
      [-IncludeTotalCount]
      [-Skip <UInt64>]
      [-First <UInt64>]
      [<CommonParameters>]

Description

A Import-Clixml parancsmag importálja a Common Language Infrastructure (CLI) XML-fájlba szerializált objektumokat. A Windows rendszerű számítógépeken hasznos lehet Import-Clixml olyan hitelesítő adatok és biztonságos sztringek importálása, amelyeket biztonságos XML-fájlként Export-Clixmlexportáltak. A 2 . példa bemutatja, hogyan lehet Import-Clixml biztonságos hitelesítőadat-objektumot importálni.

A CLIXML-adatok vissza lesznek deszerializálva PowerShell-objektumokba. A deszerializált objektumok azonban nem élő objektumok. Ezek pillanatképek az objektumokról a szerializálás időpontjában. A deszerializált objektumok tulajdonságokat tartalmaznak, de metódusokat nem.

A TypeNames tulajdonság az eredeti típusnevet Deserializedtartalmazza. A 3 . példa egy deszerializált objektum TypeNames tulajdonságát mutatja.

Import-Clixml A bájtsorrendjel (BOM) használatával észleli a fájl kódolási formátumát. Ha a fájl nem rendelkezik BOM-lal, feltételezi, hogy a kódolás UTF8.

A parancssori felülettel kapcsolatos további információkért lásd a nyelv függetlenségét.

Példák

1. példa: Szerializált fájl importálása és objektum újbóli létrehozása

Ez a példa a Export-Clixml parancsmaggal menti a visszaadott folyamatadatok szerializált másolatát Get-Process. Import-Clixml lekéri a szerializált fájl tartalmát, és újra létrehozza a $Processes változóban tárolt objektumot.

Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml

2. példa: Biztonságos hitelesítőadat-objektum importálása

Ebben a példában a változóban $Credential a parancsmag futtatásával Get-Credential tárolt hitelesítő adatokat tekintve a Export-Clixml parancsmag futtatásával mentheti a hitelesítő adatokat a lemezre.

Fontos

Export-Clixml csak titkosított hitelesítő adatokat exportál Windows rendszeren. Nem Windows rendszerű operációs rendszereken, például macOS-en és Linuxon a hitelesítő adatok egyszerű szövegben lesznek exportálva.

$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

A Export-Clixml parancsmag a Windows Data Protection API használatával titkosítja a hitelesítő adatokat. A titkosítás biztosítja, hogy csak a felhasználói fiók tudja visszafejteni a hitelesítőadat-objektum tartalmát. Az exportált CLIXML fájl nem használható másik számítógépen vagy másik felhasználó által.

A példában a hitelesítő adatok tárolására szolgáló fájlt a következő jelöli TestScript.ps1.credential: . Cserélje le a TestScriptet annak a szkriptnek a nevére, amellyel betölti a hitelesítő adatokat.

A hitelesítő objektumot elküldheti a folyamaton Export-Clixml, és mentheti az első parancsban megadott elérési útra $Credxmlpath.

Ha automatikusan szeretné importálni a hitelesítő adatokat a szkriptbe, futtassa az utolsó két parancsot. Futtassa Import-Clixml a biztonságos hitelesítőadat-objektum importálását a szkriptbe. Ez az importálás kiküszöböli az egyszerű szöveges jelszavak szkriptben való felfedésének kockázatát.

3. példa: Deszerializált objektum TypeNames tulajdonságának vizsgálata

Ez a példa egy CLIXML-adatként tárolt objektum importálását mutatja be. Az adatok újra deszerializálva lesznek egy PowerShell-objektumba. A deszerializált objektum azonban nem élő objektum. Ezek pillanatképek az objektumokról a szerializálás időpontjában. A deszerializált objektumok tulajdonságokat tartalmaznak, de metódusokat nem.

$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

Vegye figyelembe, hogy az objektum $original típusa a System.Management.Automation.PSCustomObject, de az objektum $deserialized típusa deserialized.System.Management.Automation.PSCustomObject. A metódus hiányzik a GetDisplay() deszerializált objektumból is.

Paraméterek

-First

Csak a megadott számú objektumot kapja meg. Adja meg a lekérni kívánt objektumok számát.

Típus:UInt64
Position:Named
Alapértelmezett érték:False
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-IncludeTotalCount

Az adathalmazban lévő objektumok teljes számát jelenti, majd a kijelölt objektumokat. Ha a parancsmag nem tudja meghatározni a teljes számot, az ismeretlen végösszeget jeleníti meg. Az egész számnak van egy Pontosság tulajdonsága , amely a teljes számérték megbízhatóságát jelzi. A pontosság értéke attól a pontig 0.0 terjed, ahol azt jelenti, hogy a parancsmag nem tudta megszámolni 0.0 1.0 az objektumokat, azt jelenti, 1.0 hogy a szám pontos, és egy érték között0.0, és 1.0 egyre megbízhatóbb becslést jelez.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:False
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-LiteralPath

Megadja az XML-fájlok elérési útját. A Path-tal ellentétben a LiteralPath paraméter értéke pontosan a beírt módon lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út tartalmaz escape karaktereket, csatolja egy idézőjelek közé. Az idézőjelek azt mondják a PowerShellnek, hogy ne értelmezzen karaktereket feloldósorozatként.

Típus:String[]
Aliasok:PSPath, LP
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-Path

Megadja az XML-fájlok elérési útját.

Típus:String[]
Position:0
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-Skip

Figyelmen kívül hagyja a megadott számú objektumot, majd lekéri a fennmaradó objektumokat. Adja meg a kihagyandó objektumok számát.

Típus:UInt64
Position:Named
Alapértelmezett érték:False
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

Bevitelek

String

A parancsmag elérési útját tartalmazó sztringet csövezheti.

Kimenetek

PSObject

Ez a parancsmag a tárolt XML-fájlokból deszerializált objektumokat ad vissza.

Jegyzetek

Ha több értéket ad meg egy paraméterhez, vesszővel válassza el egymástól az értékeket. Például: <parameter-name> <value1>, <value2>.