Import-Clixml
Importe un fichier CLIXML et crée des objets correspondants dans PowerShell.
Syntax
Import-Clixml
[-Path] <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Import-Clixml
-LiteralPath <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Description
L’applet Import-Clixml
de commande importe les objets qui ont été sérialisés dans un fichier XML cli (Common Language Infrastructure). Une utilisation précieuse de sur les Import-Clixml
ordinateurs Windows est d’importer des informations d’identification et des chaînes sécurisées qui ont été exportées en tant que XML sécurisé à l’aide de Export-Clixml
.
L’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 en 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
.
L’exemple 3 montre 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 nomenclature, il suppose que l’encodage est UTF8.
Pour plus d’informations sur l’interface CLI, consultez Indépendance de la langue.
Exemples
Exemple 1 : Importer un fichier sérialisé et recréer un objet
Cet exemple utilise l’applet Export-Clixml
de commande 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 $Processes
variable .
Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml
Exemple 2 : Importer un objet d’informations d’identification sécurisées
Dans cet exemple, avec les informations d’identification que vous avez stockées dans la $Credential
variable en exécutant l’applet Get-Credential
de commande, vous pouvez exécuter l’applet Export-Clixml
de commande 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 Export-Clixml
de commande 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 exporté CLIXML
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 avec 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, $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ées 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 que le type de l’objet dans $deserialized
est Deserialized.System.Management.Automation.PSCustomObject. En outre, la GetDisplay()
méthode est manquante dans l’objet désérialisé.
Paramètres
-First
Obtient uniquement le nombre d’objets spécifié. Entrez le nombre d’objets à obtenir.
Type: | UInt64 |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IncludeTotalCount
Indique 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 du nombre total. La valeur de Accuracy va de 0.0
à 1.0
où 0.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.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
Spécifie le chemin des fichiers XML. Contrairement à Path, la valeur du paramètre LiteralPath est utilisée exactement comme il est tapé. 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 des séquences d’échappement.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
Spécifie le chemin des fichiers XML.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Skip
Ignore le nombre spécifié d’objets, puis obtient les objets restants. Entrez le nombre d’objets à ignorer.
Type: | UInt64 |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entrées
Vous pouvez diriger une chaîne contenant un chemin vers cette applet de commande.
Sorties
Cette applet de commande retourne des objets qui ont été désérialisés à partir des fichiers XML stockés.
Notes
Quand vous spécifiez plusieurs valeurs pour un paramètre, séparez-les par des virgules. Par exemple : <parameter-name> <value1>, <value2>
.