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