Partager via


Import-Clixml

Importe un fichier CLIXML et crée des objets correspondants dans PowerShell.

Syntaxe

ByPath (Par défaut)

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

ByLiteralPath

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

Description

L’applet de commande Import-Clixml importe des objets qui ont été sérialisés dans un fichier XML CLI (Common Language Infrastructure). Une utilisation précieuse de Import-Clixml sur les ordinateurs Windows consiste à importer des informations d’identification et des chaînes sécurisées exportées en tant que code XML sécurisé à l’aide de Export-Clixml. exemple n° 2 montre comment utiliser Import-Clixml pour importer un objet d’informations d’identification sécurisé.

Les données CLIXML sont désérialisées dans des objets PowerShell. Toutefois, les objets désérialisés ne sont pas des objets actifs. Il s’agit d’un instantané des objets au moment de la sérialisation. Les objets désérialisés incluent des propriétés, mais aucune méthode.

La propriété TypeNames contient le nom de type d’origine précédé de Deserialized. Exemple 3 afficher la propriété TypeNames d’un objet désérialisé.

Import-Clixml utilise la marque d’ordre d’octet (BOM) pour détecter le format d’encodage du fichier. Si le fichier n’a pas de boM, il suppose que l’encodage est UTF8.

Pour plus d’informations sur l’interface CLI, consultez indépendance du langage.

Exemples

Exemple 1 : Importer un fichier sérialisé et recréer un objet

Cet exemple utilise l’applet de commande Export-Clixml pour enregistrer une copie sérialisée des informations de processus retournées par Get-Process. Import-Clixml récupère le contenu du fichier sérialisé et recrée un objet stocké dans la variable $Processes.

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

Exemple 2 : Importer un objet d’informations d’identification sécurisé

Dans cet exemple, étant donné les informations d’identification que vous avez stockées dans la variable $Credential en exécutant l’applet de commande Get-Credential, vous pouvez exécuter l’applet de commande Export-Clixml pour enregistrer les informations d’identification sur le disque.

Important

Export-Clixml exporte uniquement les informations d’identification chiffrées sur Windows. Sur les systèmes d’exploitation non Windows tels que macOS et Linux, les informations d’identification sont exportées en texte brut.

$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

L’applet de commande Export-Clixml chiffre les objets d’informations d’identification à l’aide de l’API De protection des données Windows . Le chiffrement garantit que seul votre compte d’utilisateur peut déchiffrer le contenu de l’objet d’informations d’identification. Le fichier CLIXML exporté ne peut pas être utilisé sur un autre ordinateur ou par un autre utilisateur.

Dans l’exemple, le fichier dans lequel les informations d’identification sont stockées est représenté par TestScript.ps1.credential. Remplacez testScript par le nom du script par lequel vous chargez les informations d’identification.

Vous envoyez l’objet d’informations d’identification vers le bas du pipeline à Export-Clixml, puis enregistrez-le dans le chemin d’accès, $Credxmlpath, que vous avez spécifié dans la première commande.

Pour importer automatiquement les informations d’identification dans votre script, exécutez les deux commandes finales. Exécutez Import-Clixml pour importer l’objet d’informations d’identification sécurisé dans votre script. Cette importation élimine le risque d’exposer des mots de passe en texte brut dans votre script.

Exemple 3 : Inspecter la propriété TypeNames d’un objet désérialisé

Cet exemple montre l’importation d’un objet stocké en tant que données CLIXML. Les données sont désérialisées dans un objet PowerShell. Toutefois, l’objet désérialisé n’est pas un objet actif. Il s’agit d’un instantané des objets au moment de la sérialisation. Les objets désérialisés incluent des propriétés, mais aucune méthode.

$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

Notez que le type de l’objet dans $original est System.Management.Automation.PSCustomObject, mais le type de l’objet dans $deserialized est Deserialized.System.Management.Automation.PSCustomObject. En outre, la méthode GetDisplay() est manquante à partir de l’objet désérialisé.

Paramètres

-First

Obtient uniquement le nombre spécifié d’objets. Entrez le nombre d’objets à obtenir.

Propriétés du paramètre

Type:UInt64
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-IncludeTotalCount

Signale le nombre total d’objets dans le jeu de données suivi des objets sélectionnés. Si l’applet de commande ne peut pas déterminer le nombre total, elle affiche nombre total inconnu. L’entier a une propriété Accuracy qui indique la fiabilité de la valeur de nombre total. La valeur de précision varie de 0.0 à 1.00.0 signifie que l’applet de commande n’a pas pu compter les objets, 1.0 signifie que le nombre est exact et qu’une valeur entre 0.0 et 1.0 indique une estimation de plus en plus fiable.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-LiteralPath

Spécifie le chemin d’accès aux fichiers XML. Contrairement à Path, la valeur du paramètre LiteralPath est utilisée exactement tel qu'elle est saisie. Aucun caractère n’est interprété en tant que caractère générique. Si le chemin d’accès inclut des caractères d’échappement, mettez-le entre des guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme séquences d’échappement.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:PSPath, DP

Jeux de paramètres

ByLiteralPath
Position:Named
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Path

Spécifie le chemin d’accès aux fichiers XML.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByPath
Position:0
Obligatoire:True
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Skip

Ignore le nombre spécifié d’objets, puis obtient les objets restants. Entrez le nombre d’objets à ignorer.

Propriétés du paramètre

Type:UInt64
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

String

Vous pouvez diriger une chaîne contenant un chemin d’accès à cette applet de commande.

Sorties

PSObject

Cette applet de commande retourne des objets désérialisés à partir des fichiers XML stockés.

Notes

Lorsque vous spécifiez plusieurs valeurs pour un paramètre, utilisez des virgules pour séparer les valeurs. Par exemple : <parameter-name> <value1>, <value2>.