Búsqueda de sitios web

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.xml

Ejemplo 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 $Credxmlpath

El 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, , .

Artículos relacionados