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-Clixml
exportá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 Deserialized
tartalmazza.
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
A parancsmag elérési útját tartalmazó sztringet csövezheti.
Kimenetek
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>
.