Partager via


Add-History

Ajoute des entrées à l’historique de session.

Syntaxe

Add-History
   [[-InputObject] <PSObject[]>]
   [-PassThru]
   [<CommonParameters>]

Description

L’applet de commande Add-History ajoute des entrées à la fin de l’historique de session, c’est-à-dire la liste des commandes entrées pendant la session active.

L’historique des sessions est une liste des commandes entrées pendant la session. L’historique des sessions représente l’ordre d’exécution, l’état et les heures de début et de fin de la commande. Lorsque vous entrez chaque commande, PowerShell l’ajoute à l’historique afin de pouvoir le réutiliser. Pour plus d’informations sur l’historique des sessions, consultez about_History.

L’historique des sessions est géré séparément de l’historique conservé par le module PSReadLine. Les deux historiques sont disponibles lors des sessions où PSReadLine est chargé. Cette applet de commande fonctionne uniquement avec l’historique de session. Pour plus d’informations, consultez about_PSReadLine.

Vous pouvez utiliser l’applet de commande Get-History pour obtenir les commandes et les transmettre à Add-History, ou exporter les commandes vers un fichier CSV ou XML, puis importer les commandes, puis passer le fichier importé à Add-History. Vous pouvez utiliser cette applet de commande pour ajouter des commandes spécifiques à l’historique ou créer un fichier d’historique unique qui inclut des commandes de plusieurs sessions.

Exemples

Exemple 1 : Ajouter des commandes à l’historique d’une autre session

Cet exemple montre comment ajouter les commandes tapées dans une session PowerShell à l’historique d’une autre session PowerShell.

Get-History | Export-Csv -Path C:\testing\history.csv -IncludeTypeInformation
Import-Csv -Path C:\testing\history.csv | Add-History

La première commande obtient des objets représentant les commandes de l’historique et les exporte dans le fichier History.csv.

La deuxième commande est tapée sur la ligne de commande d’une autre session. Il utilise l’applet de commande Import-Csv pour importer les objets dans le fichier History.csv. L’opérateur de pipeline (|) transmet les objets à l’applet de commande Add-History, ce qui ajoute les objets représentant les commandes du fichier History.csv à l’historique de session actuel.

Exemple 2 : Importer et exécuter des commandes

Cet exemple importe des commandes à partir du fichier History.xml, les ajoute à l’historique de session actuel, puis exécute les commandes dans l’historique combiné.

Import-Clixml -Path C:\temp\history.xml | Add-History -PassThru | ForEach-Object -Process {Invoke-History}

La première commande utilise l’applet de commande Import-Clixml pour importer un historique de commandes exporté dans le fichier History.xml. L’opérateur de pipeline transmet les commandes à l’applet de commande Add-History, ce qui ajoute les commandes à l’historique de session actuel. Le paramètre PassThru transmet les objets représentant les commandes ajoutées vers le bas du pipeline.

La commande utilise ensuite l’applet de commande ForEach-Object pour appliquer la commande Invoke-History à chacune des commandes de l’historique combiné. La commande Invoke-History est mise en forme en tant que bloc de script, placé entre accolades ({}), comme requis par le paramètre Process de l’applet de commande ForEach-Object.

Exemple 3 : Ajouter des commandes dans l’historique à la fin de l’historique

Cet exemple ajoute les cinq premières commandes dans l'historique à la fin de la liste d'historique.

Get-History -Id 5 -Count 5 | Add-History

L’applet de commande Get-History obtient les cinq commandes se terminant par la commande 5. L’opérateur de pipeline les transmet à l’applet de commande Add-History, qui les ajoute à l’historique actuel. La commande Add-History n’inclut aucun paramètre, mais PowerShell associe les objets transmis par le pipeline au paramètre InputObject de Add-History.

Exemple 4 : Ajouter des commandes dans un fichier .csv à l’historique actuel

Cet exemple montre comment ajouter les commandes du fichier History.csv à l’historique de session actuel.

$a = Import-Csv -Path C:\testing\history.csv
Add-History -InputObject $a -PassThru

L’applet de commande Import-Csv importe les commandes dans le fichier History.csv et stocke son contenu dans la variable $a.

La deuxième commande utilise l’applet de commande Add-History pour ajouter les commandes de History.csv à l’historique de session actuel. Il utilise le paramètre InputObject pour spécifier la variable $a et le paramètre PassThru pour générer un objet à afficher sur la ligne de commande. Sans le paramètre passThru, l’applet de commande Add-History ne génère aucune sortie.

Exemple 5 : Ajouter des commandes dans un fichier .xml à l’historique actuel

Cet exemple montre comment ajouter les commandes du fichier history.xml à l’historique de session actuel.

Add-History -InputObject (Import-Clixml -Path C:\temp\history.xml)

Le paramètre InputObject transmet les résultats de la commande entre parenthèses à l’applet de commande Add-History. La commande entre parenthèses, qui est exécutée en premier, importe le fichier history.xml dans PowerShell. L’applet de commande Add-History ajoute ensuite les commandes du fichier à l’historique de session.

Paramètres

-InputObject

Spécifie un tableau d’entrées à ajouter à l’historique en tant qu’objet HistoryInfo à l’historique de la session. Vous pouvez utiliser ce paramètre pour envoyer un objet HistoryInfo, tel que ceux retournés par le Get-History, Import-Clixmlou les applets de commande Import-Csv, à Add-History.

Type:PSObject[]
Position:0
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-PassThru

Indique que cette applet de commande retourne un objet HistoryInfo pour chaque entrée d’historique. Par défaut, cette applet de commande ne génère aucune sortie.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

HistoryInfo

Vous pouvez diriger un objet HistoryInfo vers cette applet de commande.

Sorties

None

Par défaut, cette applet de commande ne retourne aucune sortie.

HistoryInfo

Lorsque vous utilisez le paramètre PassThru, cette applet de commande renvoie un objet HistoryInfo.

Notes

L’historique des sessions est une liste des commandes entrées pendant la session, ainsi que l’ID. L’historique des sessions représente l’ordre d’exécution, l’état et les heures de début et de fin de la commande. Lorsque vous entrez chaque commande, PowerShell l’ajoute à l’historique afin de pouvoir le réutiliser. Pour plus d’informations sur l’historique des sessions, consultez about_History.

Pour spécifier les commandes à ajouter à l’historique, utilisez le paramètre InputObject. La commande Add-History accepte uniquement les objets HistoryInfo, tels que ceux retournés pour chaque commande par l’applet de commande Get-History. Vous ne pouvez pas lui transmettre un chemin d’accès et un nom de fichier ou une liste de commandes.

Vous pouvez utiliser le paramètre InputObject pour passer un fichier d’objets HistoryInfo à Add-History. Pour ce faire, exportez les résultats d’une commande Get-History dans un fichier à l’aide de l’applet de commande Export-Csv ou Export-Clixml, puis importez le fichier à l’aide des applets de commande Import-Csv ou Import-Clixml. Vous pouvez ensuite transmettre le fichier d’objets HistoryInfo importés à Add-History via un pipeline ou dans une variable. Pour plus d’informations, consultez les exemples.

Le fichier des objets HistoryInfo que vous transmettez à l'applet de commande Add-History doit inclure les informations de type, les en-têtes de colonne et toutes les propriétés des objets HistoryInfo. Si vous envisagez de renvoyer les objets à Add-History, n’utilisez pas le paramètre NoTypeInformation de l’applet de commande Export-Csv et ne supprimez pas les informations de type, les en-têtes de colonne ou les champs du fichier.

Pour modifier l’historique de session, exportez la session vers un fichier CSV ou XML, modifiez le fichier, importez le fichier et utilisez Add-History pour l’ajouter à l’historique de session actuel.