Résolu Historique Powershell

Plus d'informations
il y a 8 mois 4 semaines #33351 par Mozgjre
Historique Powershell a été créé par Mozgjre
Bonjour à tous,

J'ai une question à laquelle je ne parviens pas à répondre depuis quelques jours : sur Powershell, on a accès à un historique quand on fait Get-History ou history, mais ça reste limité car c'est l'historique de la session courante.

Mais, on peut accéder à l'historique de l'ensemble des sessions via ce fichier : C:\Users\...\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt

Par erreur et je vois pas comment, j'ai effacé son contenu. Ça m'a un peu saoulé, mais finalement en faisant CTRL+R/S on peut interagir avec bck/fwd-i-search, et l'utilitaire m'a permis de retrouver certaines commandes dont j'avais besoin et qui n'étaient plus présentes dans ConsoleHost_history.txt.

Moi je pensais que bck/fwd-i-search utilisait ce fichier, mais visiblement ce n'est pas le cas puisque l'utilitaire a retrouvé des commandes alors que ConsoleHost_history.txt était vide. Du coup où est-ce qu'il va piocher pour trouver mon historique de commande ?

Par avance merci '

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 mois 4 semaines - il y a 8 mois 4 semaines #33352 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Historique Powershell
Bonjour à toi Mozgjre,

Comme tu l'as peut-être compris, l'historique qui est conservé d'une session PowerShell à l'autre grâce à CTRL+R/S l'est uniquement grâce au module PSReadLine. En effet, ce dernier génère ce fameux fichier ConsoleHost_history.txt qui est stocké dans ton profil utilisateur Windows.

Avant l'existence de ce module, l'historique des commandes était définitivement perdu lorsqu'on fermait le console PowerShell. Ce qui n'est désormais plus le cas. La commande Get-History est quand à elle une commande historique qui ne va conserver que l'historique des commandes tapées depuis l'ouverture d'une console PowerShell.

Cela étant dit, je suis assez surpris par ton problème. En effet, pour moi également si ton fichier ConsoleHost_history.txt est vide, PSReadline ne devrait pas être en mesure de te retrouver ton historique. A moins qu'il y ait plusieurs emplacements possibles.
Je pense que le mieux est d'aller jeter un oeil à l'aide du module PSReadline en tapant la commande : 
# Nécessite d'avoir fait un update-help avant
help about_psreadline


ou d'aller consulter l'aide :  Aide de PSReadLine

qui explique ceci : 
PSReadLine gère un fichier d’historique contenant toutes les commandes et données que vous avez entrées à partir de la ligne de commande.
Les fichiers d’historique sont un fichier nommé $($host.Name)_history.txt.
Sur les systèmes Windows, le fichier d’historique est stocké dans $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine.
Sur les systèmes non Windows, les fichiers d’historique sont stockés dans $env:XDG_DATA_HOME/powershell/PSReadLine ou $env:HOME/.local/share/powershell/PSReadLine.

PS : Ce serait agréable si tu pouvais te présenter dans la section prévue à cet effet du forum. Merci ;-)

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Dernière édition: il y a 8 mois 4 semaines par Arnaud Petitjean.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 mois 3 semaines #33355 par Mozgjre
Réponse de Mozgjre sur le sujet Historique Powershell
Hello,

Merci pour ta réponse.

Rien de neuf pour ma part, la documentation ne m'a pas plus aidé que ça...une hypothèse serait la suivante : quand on lance Powershell, l'utilitaire accessible via CTRL+R/S charge le fichier d'historique en mémoire plutôt que d'y accéder à la demande. De ce fait, quand j'ai supprimé mon fichier, mais ayant conservé la session ouverte, l'utilitaire a pu retrouver les commandes...

Yes, c'est fait pour la présentation : )

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 mois 3 semaines #33356 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Historique Powershell
Salut !

Eh oui, je suis sûr que c'est ça. Tout s'explique !!

Toi qui opère dans la cyber, j'imagine que ce fichier est un fichier de choix pour les attaquants. N'est-ce pas ?

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 mois 3 semaines #33359 par Mozgjre
Réponse de Mozgjre sur le sujet Historique Powershell
Oui, c'est la seule explication logique que j'ai pu trouver...

Oui les fichiers d'historiques c'est souvent source d'informations, comme des noms d'utilisateurs, des mots de passe parfois (genre le gars tape son password sur la console sans faire gaffe, son Shell lui retourne une erreur mais tu retrouves finalement le password dans l'historique x) ), des chemins de dossiers / fichiers cachés, des commandes de configuration, de suppression de fichiers que tu peux restaurer, et parfois des trucs un peu plus abracadabrants...

PSReadLine propose par ailleurs des protections (genre si tu tape $password = Tonmotdepasse, ce n'est pas référencé dans l'historique), mais je ne me suis pas trop penché sur le sujet.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 mois 3 semaines #33364 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Historique Powershell

PSReadLine propose par ailleurs des protections (genre si tu tape $password = Tonmotdepasse, ce n'est pas référencé dans l'historique), mais je ne me suis pas trop penché sur le sujet.


Humm c'est bon à savoir !! Je vais creuser le sujet mais de mon point de vue, cette option devrait être activée par défaut !

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.118 secondes
Propulsé par Kunena