La personnalisation du profil PowerShell
Sommaire
I. Présentation
La personnalisation de son environnement de travail PowerShell, c'est-à-dire de la console PowerShell et des éditeurs de code, passe par l'utilisation de ce que l'on appelle un profil. Chaque profil est représenté par un fichier et chaque utilisateur peut personnaliser son environnement de travail PowerShell comme il le souhaite.
Ce chapitre a pour objectif d'expliquer comment créer un fichier de profil, d'indiquer où sont stockés les fichiers de profils et de vous accompagner dans la personnalisation de base de votre profil PowerShell.
II. Les fichiers de profils PowerShell
Tout d'abord, vous devez savoir qu'il y a plusieurs fichiers de profils différents. Windows PowerShell a son fichier de profil. PowerShell aussi, et Windows PowerShell ISE également. À chaque fois, le fichier de profil est représenté par un fichier au format ".ps1".
Le profil est chargé dès qu'une nouvelle session PowerShell est lancée. Autrement dit, quand vous ouvrez une console PowerShell, votre profil est chargé. Ceci signifie que l'on va pouvoir exécuter des instructions (des commandes) à chaque fois que la console PowerShell s'exécute.
Que peut-on indiquer comme instructions dans le profil PowerShell ? Voici quelques cas d'usages :
- Personnaliser le prompt pour modifier l'emplacement actuel afin d'utiliser un répertoire spécifique
- Ajouter des alias de commandes personnalisés pour gagner du temps lors de l'appel de vos commandes favorites
- Définir des variables d'environnement
- Ajouter un message avec des informations utiles
- Ajouter le temps d'exécution de chaque commande
- Changer l'esthétique de la console
- Etc...
Note : l'éditeur de code Visual Studio Code, que nous découvrirons par la suite, a aussi un fichier de profil, mais dans un format différent. Il n'est pas concerné par ce chapitre.
III. Où est stocké le fichier de profil PowerShell ?
Voilà une bonne question. La réponse se situe dans la valeur de la variable suivante :
$PROFILE
Cette variable retourne le chemin vers le fichier de profil PowerShell. Il est intéressant de constater que ce n'est pas le même fichier qui est chargé entre PowerShell et Windows PowerShell. Ceci prouve bien qu'il y a un profil différent entre ces deux grandes versions de PowerShell.
Par défaut, ces fichiers n'existent pas ! Le profil étant vide, PowerShell ne fait même pas l'effort de le créer.
IV. Comment créer un profil PowerShell ?
Nous allons voir comment créer le fichier de profil de PowerShell. Le principe est le même pour la console Windows PowerShell. Bien que l'on puisse créer ce fichier en interface graphique, c'est plus simple de le faire directement en PowerShell. De plus, c'est l'occasion de manipuler alors nous n'allons pas nous en priver.
Grâce au cmdlet "New-Item", nous allons pouvoir créer différents types d'éléments, y compris des fichiers et des dossiers. Dans le cas présent, c'est un fichier que nous avons besoin de créer. Le chemin du profil, nous le connaissons également puisqu'il correspond au contenu de la variable "$PROFILE".
Ainsi, voici la commande à exécuter pour créer le fichier de profil :
New-Item -Path $PROFILE -ItemType File -Force
Le fait d'utiliser le paramètre "-Force" indique à PowerShell qu'il doit créer le fichier et les éventuels dossiers manquants. Ceci signifie qu'il va créer le dossier "PowerShell" dans "Documents", puis à l'intérieur le fichier ".ps1" correspondant au profil. Nous pouvons constater que le fichier de profil est bien créé dans le profil de l'utilisateur, donc ce fichier lui est propre.
Désormais, nous allons voir comment personnaliser le profil PowerShell nouvellement créé.
V. Personnaliser le profil PowerShell
Pour effectuer la modification du profil PowerShell, nous pouvons naviguer sur la machine avec l'Explorateur de fichiers jusqu'à trouver le fichier. Nous pouvons aussi utiliser PowerShell, afin de commencer l'édition avec l'application de notre choix.
Éditez le profil PowerShell avec l'application Bloc-notes :
# Modifier le profil avec le Bloc-notes
notepad $profile
C'est loin d'être l'idéal pour éditer du code PowerShell mais nous n'avons pas encore fait la découverte des éditeurs de code PowerShell : d'ailleurs, ce sera notre objectif du prochain chapitre.
Un fichier s'ouvre. Il est vide. C'est normal puisque nous venons de le créer.
À l'intérieur, nous allons ajouter plusieurs lignes pour :
- Définir le titre de la fenêtre PowerShell pour préciser la version de PowerShell associée à la console, ce qui permet d'avoir l'information d'un coup d'œil
- Définir l'emplacement par défaut, pour que le prompt soit automatiquement positionné dans "C:\"
- Nettoyer la console pour éliminer les éventuels messages
- Créer un alias de la commande "Test-Connection" nommé "ping" pour que l'utilisation du ping permette d'appeler le cmdlet PowerShell équivalent plutôt que l'outil ping en lui-même. Ceci rend cet alias persistant puisqu'il sera créé automatiquement à chaque lancement de la console !
Ceci va nous donner les lignes suivantes :
# Titre de la fenêtre
$host.ui.RawUI.WindowTitle="PowerShell " + $PSVersionTable.PSVersion.ToString()
# Définir l'emplacement
Set-Location "C:\"
# Nettoyer la console
Clear-Host
# Créer un alias
New-Alias ping Test-Connection
Nous pouvons constater que nous avons pu ajouter un ensemble de commandes dans un même fichier. Félicitations ! Sans le savoir, vous venez de créer votre premier script PowerShell, même si celui-ci a un rôle particulier.
Quand c'est fait, enregistrez le fichier et ouvrez une console PowerShell sur votre machine. Il faut fermer et rouvrir la console à chaque fois que l'on souhaite tester une modification apportée au fichier de profil.
Voici la console avec le profil vide :
Voici la console avec notre nouveau profil :
Les changements sont mineurs, mais la différence se fait dans les détails. Ceci n'est qu'un aperçu, vous pouvez personnaliser le profil PowerShell à votre guise.
Par ailleurs, si nous faisons un ping vers un hôte quelconque, par exemple "1.1.1.1", nous faisons bien appel à "Test-Connection" grâce à notre alias persistant ajouté à notre profil PowerShell.
VI. Conclusion
Désormais, vous êtes capable de personnaliser votre console PowerShell grâce au fichier de profil ! Puisque ce fichier de profil est en fait un script PowerShell, vous pouvez exécuter les instructions que vous souhaitez (attention tout de même à ne pas trop alourdir le lancement de la console).
En complément de ce chapitre, vous pouvez approfondir ce sujet en lisant ces deux articles :