Import-Clixml
Importa um arquivo CLIXML e cria objetos correspondentes no PowerShell.
Sintaxe
ByPath (Predefinição)
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 do Import-Clixml em computadores Windows é importar credenciais e proteger cadeias de caracteres 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 do tipo original prefixado com Deserialized.
Exemplo #3 mostrar a propriedade TypeNames de um objeto desserializado.
Import-Clixml usa a marca de ordem de bytes (BOM) para detetar o formato de codificação do arquivo. Se o arquivo não tiver BOM, ele assume que a codificação é UTF8.
Para obter mais informações sobre CLI, consulte Language independence.
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, dada uma credencial que você armazenou 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 que não sejam 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 credenciais usando o Windows Data Protection API. A criptografia garante que apenas sua conta de usuário possa descriptografar o conteúdo do objeto de credencial. O arquivo 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 está armazenada é representado por TestScript.ps1.credential. Substitua TestScript pelo nome do script com o qual você está carregando a credencial.
Você envia o objeto de credencial pelo pipeline para Export-Clixmle o salva 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 seguro para o script. Essa importação elimina o risco de expor senhas de texto simples 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 dinâmico. 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 no $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á faltando no objeto desserializado.
Parâmetros
-First
Obtém apenas o número especificado de objetos. Insira o número de objetos a obter.
Propriedades dos parâmetros
| Tipo: | UInt64 |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | 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 de Accuracy varia de 0.0 a 1.0 onde 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 dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-LiteralPath
Especifica o caminho para os arquivos XML. Ao contrário de Path, o valor do parâmetro LiteralPath é usado exatamente como foi escrito. Nenhum caractere é interpretado como carta curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples indicam ao PowerShell para não interpretar quaisquer caracteres como sequências de escape.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | PSPath |
Conjuntos de parâmetros
ByLiteralPath
| Position: | Named |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
-Path
Especifica o caminho para os arquivos XML.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
ByPath
| Position: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
-Skip
Ignora o número especificado de objetos e, em seguida, obtém os objetos restantes. Insira o número de objetos a serem ignorados.
Propriedades dos parâmetros
| Tipo: | UInt64 |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | 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 contendo um caminho para esse cmdlet.
Saídas
PSObject
Este cmdlet retorna objetos que foram desserializados dos arquivos XML armazenados.
Notas
Ao especificar vários valores para um parâmetro, use vírgulas para separar os valores. Por exemplo, <parameter-name> <value1>, <value2>.