Import-Clixml (Microsoft.PowerShell.Utility)
Import-Clixml
- Módulo:
- Microsoft.PowerShell.Utility
Importa un archivo CLIXML y crea los objetos correspondientes en PowerShell.
Sintaxis
Import-Clixml
[-Path] <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]Import-Clixml
-LiteralPath <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]Descripción
El cmdlet Import-Clixml importa objetos que se han serializado en un archivo XML de Common Language Infrastructure (CLI). Un uso valioso de Import-Clixml en computadoras con Windows es importar credenciales y cadenas seguras que se exportaron como XML seguro usando Export-Clixml. El ejemplo n.º 2 muestra cómo utilizar Import-Clixml para importar un objeto de credencial seguro.
Los datos CLIXML se deserializan nuevamente en objetos de PowerShell. Sin embargo, los objetos deserializados no son objetos vivos. Son una instantánea de los objetos en el momento de la serialización. Los objetos deserializados incluyen propiedades pero no métodos.
La propiedad TypeNames contiene el nombre del tipo original con el prefijo Deserialized. El ejemplo 3 muestra la propiedad TypeNames de un objeto deserializado.
Import-Clixml utiliza la marca de orden de bytes (BOM) para detectar el formato de codificación del archivo. Si el archivo no tiene BOM, se supone que la codificación es UTF8.
Para obtener más información sobre CLI, consulte Independencia del idioma.
Ejemplos
Ejemplo 1: importar un archivo serializado y recrear un objeto
Este ejemplo utiliza el cmdlet Export-Clixml para guardar una copia serializada de la información del proceso devuelta por Get-Process. Import-Clixml recupera el contenido del archivo serializado y recrea un objeto que se almacena en la variable $Processes.
Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xmlEjemplo 2: importar un objeto de credencial seguro
En este ejemplo, dada una credencial que ha almacenado en la variable $Credential ejecutando el cmdlet Get-Credential, puede ejecutar Export-Clixml cmdlet para guardar la credencial en el disco.
es importante
Export-Clixml solo exporta credenciales cifradas en Windows. En sistemas operativos distintos de Windows, como macOS y Linux, las credenciales se exportan en texto sin formato.
$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 $CredxmlpathEl cmdlet Export-Clixml cifra objetos de credenciales mediante la API de protección de datos de Windows. El cifrado garantiza que sólo su cuenta de usuario pueda descifrar el contenido del objeto de credencial. El archivo CLIXML exportado no puede ser utilizado en una computadora diferente ni por un usuario diferente.
En el ejemplo, el archivo en el que se almacena la credencial está representado por TestScript.ps1.credential. Reemplace TestScript con el nombre del script con el que está cargando la credencial.
Envía el objeto de credencial por la canalización a Export-Clixml y lo guarda en la ruta, $Credxmlpath, que especificó en el primer comando.
Para importar la credencial automáticamente a su secuencia de comandos, ejecute los dos últimos comandos. Ejecute Import-Clixml para importar el objeto de credencial seguro a su secuencia de comandos. Esta importación elimina el riesgo de exponer contraseñas de texto sin formato en su secuencia de comandos.
Ejemplo 3: inspeccionar la propiedad TypeNames de un objeto deserializado
Este ejemplo muestra la importación de un objeto almacenado como datos CLIXML. Los datos se deserializan nuevamente en un objeto de PowerShell. Sin embargo, los objetos deserializados no son objetos vivos. Son una instantánea de los objetos en el momento de la serialización. Los objetos deserializados incluyen propiedades pero no métodos.
$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
Tenga en cuenta que el tipo de objeto en $original es System.Management.Automation.PSCustomObject, pero el tipo de objeto en $deserialized es Deserialized.System.Management.Automation.PSCustomObject. Además, el método GetDisplay() falta en el objeto deserializado.
Parámetros
-First
Obtiene sólo el número especificado de objetos. Ingrese la cantidad de objetos a obtener.
- Tipo :
UInt64
- Posición:
Nombrado
- Valor predeterminado:
False
- Requerido:
False
- Aceptar entrada de canalización:
False
- Aceptar caracteres comodín:
False
-IncludeTotalCount
Informa el número total de objetos en el conjunto de datos seguido de los objetos seleccionados. Si el cmdlet no puede determinar el recuento total, muestra Recuento total desconocido. El número entero tiene una propiedad Exactitud que indica la confiabilidad del valor de recuento total. El valor de Precisión varía de 0.0 a 1.0 donde 0.0 significa que el cmdlet no pudo contar los objetos. 1.0 significa que el recuento es exacto y un valor entre 0.0 y 1.0 indica una estimación cada vez más fiable.
- Tipo :
SwitchParameter
- Posición:
-
Nombrado
- Valor predeterminado:
False
- Requerido:
False
- Aceptar entrada de canalización:
False
- Aceptar caracteres comodín:
False
-LiteralPath
Especifica la ruta a los archivos XML. A diferencia de Path, el valor del parámetro LiteralPath se utiliza exactamente tal como se escribe. Ningún carácter se interpreta como comodín. Si la ruta incluye caracteres de escape, escríbala entre comillas simples. Las comillas simples le indican a PowerShell que no interprete ningún carácter como secuencia de escape.
- Tipo :
String[]
- Alias:
PSPath, LP
- Posición:
Nombrado
- Valor predeterminado:
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
False
-Path
Especifica la ruta a los archivos XML.
- Tipo :
String[]
- Posición:
0
- Valor predeterminado:
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
False
-Skip
Ignora el número especificado de objetos y luego obtiene los objetos restantes. Introduzca el número de objetos a omitir.
- Tipo :
UInt64
- Posición:
Nombrado
- Valor predeterminado:
False
- Requerido:
False
- Aceptar entrada de canalización:
False
- Aceptar caracteres comodín:
False
Entradas
Cadena
Puede canalizar una cadena que contenga una ruta a este cmdlet.
Salidas
PSObjeto
Este cmdlet devuelve objetos que se deserializaron de los archivos XML almacenados.
Notas
Al especificar varios valores para un parámetro, utilice comas para separar los valores. Por ejemplo,