Compartilhar via


Import-Clixml

Importa um arquivo CLIXML e cria objetos correspondentes no PowerShell.

Sintaxe

ByPath (Default)

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

ByLiteralPath

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

Description

O cmdlet Import-Clixml importa objetos que foram serializados em um arquivo XML da CLI (Common Language Infrastructure). Um uso valioso de Import-Clixml em computadores Windows é importar credenciais e cadeias de caracteres seguras que foram exportadas como XML seguro usando Export-Clixml. exemplo #2 mostra como usar Import-Clixml para importar um objeto de credencial seguro.

Os dados CLIXML são desserializados novamente em objetos do PowerShell. No entanto, os objetos desserializados não são objetos dinâmicos. Eles são um instantâneo dos objetos no momento da serialização. Os objetos desserializados incluem propriedades, mas nenhum método.

A propriedade TypeNames contém o nome de tipo original prefixado com Deserialized. exemplo nº 3 mostrar a propriedade TypeNames de um objeto desserializado.

Import-Clixml usa o BOM (byte-order-mark) para detectar o formato de codificação do arquivo. Se o arquivo não tiver BOM, ele pressupõe que a codificação seja UTF8.

Para obter mais informações sobre a CLI, consulte de independência de idioma.

Exemplos

Exemplo 1: importar um arquivo serializado e recriar um objeto

Este exemplo usa o cmdlet Export-Clixml para salvar uma cópia serializada das informações do processo retornadas por Get-Process. Import-Clixml recupera o conteúdo do arquivo serializado e recria um objeto armazenado na variável $Processes.

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

Exemplo 2: Importar um objeto de credencial seguro

Neste exemplo, considerando uma credencial armazenada na variável $Credential executando o cmdlet Get-Credential, você pode executar o cmdlet Export-Clixml para salvar a credencial no disco.

Importante

Export-Clixml exporta apenas credenciais criptografadas no Windows. Em sistemas operacionais não Windows, como macOS e Linux, as credenciais são exportadas em texto sem formatação.

$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

O cmdlet Export-Clixml criptografa objetos de credencial usando a API de Proteção de Dados do Windows . A criptografia garante que somente sua conta de usuário possa descriptografar o conteúdo do objeto de credencial. O arquivo de CLIXML exportado não pode ser usado em um computador diferente ou por um usuário diferente.

No exemplo, o arquivo no qual a credencial é armazenada é representado por TestScript.ps1.credential. Substitua TestScript pelo nome do script com o qual você está carregando a credencial.

Envie o objeto de credencial pelo pipeline para Export-Clixmle salve-o no caminho, $Credxmlpath, especificado no primeiro comando.

Para importar a credencial automaticamente para o script, execute os dois comandos finais. Execute Import-Clixml para importar o objeto de credencial protegido para o script. Essa importação elimina o risco de expor senhas de texto sem formatação em seu script.

Exemplo 3: Inspecionar a propriedade TypeNames de um objeto desserializado

Este exemplo mostra a importação de um objeto armazenado como dados CLIXML. Os dados são desserializados novamente em um objeto do PowerShell. No entanto, o objeto desserializado não é um objeto ativo. Eles são um instantâneo dos objetos no momento da serialização. Os objetos desserializados incluem propriedades, mas nenhum método.

$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

Observe que o tipo do objeto em $original é System.Management.Automation.PSCustomObject, mas o tipo do objeto no $deserialized é Deserialized.System.Management.Automation.PSCustomObject. Além disso, o método GetDisplay() está ausente do objeto desserializado.

Parâmetros

-First

Obtém somente o número especificado de objetos. Insira o número de objetos a obter.

Propriedades do parâmetro

Tipo:UInt64
Valor padrão:False
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-IncludeTotalCount

Relata o número total de objetos no conjunto de dados seguido pelos objetos selecionados. Se o cmdlet não puder determinar a contagem total, ele exibirá contagem total desconhecida. O inteiro tem uma propriedade Accuracy que indica a confiabilidade do valor total da contagem. O valor da precisão varia de 0.0 a 1.0 em que 0.0 significa que o cmdlet não pôde contar os objetos, 1.0 significa que a contagem é exata e um valor entre 0.0 e 1.0 indica uma estimativa cada vez mais confiável.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-LiteralPath

Especifica o caminho para os arquivos XML. Ao contrário do caminho , o valor do parâmetro LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como caractere curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples indicam ao PowerShell que não deve interpretar nenhum caractere como uma sequência de escape.

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:PSPath, LP

Conjuntos de parâmetros

ByLiteralPath
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-Path

Especifica o caminho para os arquivos XML.

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

ByPath
Cargo:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-Skip

Ignora o número especificado de objetos e obtém os objetos restantes. Insira o número de objetos a ignorar.

Propriedades do parâmetro

Tipo:UInt64
Valor padrão:False
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

String

Você pode canalizar uma cadeia de caracteres que contém um caminho para este cmdlet.

Saídas

PSObject

Esse cmdlet retorna objetos que foram desserializados dos arquivos XML armazenados.

Observações

Ao especificar vários valores para um parâmetro, use vírgulas para separar os valores. Por exemplo, <parameter-name> <value1>, <value2>.