Personnalisation du profil

Qu’est-ce qu’un profil PowerShell ?

Lorsque nous exécutons PowerShell via la console ou à l’aide d’éditeurs de code, il est possible de personnaliser cet environnement grâce à un fichier appelé profil.

Un profil est représenté par un fichier situé dans le dossier personnel de l’utilisateur. Ainsi, chaque utilisateur peut disposer de son propre profil PowerShell.

Les fichiers de profils

Par défaut, les fichiers de profil ne sont pas présents, ce qui signifie que PowerShell peut s’exécuter sans profil.

Nous allons découvrir où sont stockés ces fichiers en fonction de la version de PowerShell.

1. Localisation du profil

Microsoft stocke la localisation des profils dans une variable nommée $profile. Cette variable contient le nom et l’emplacement du fichier à modifier.

Étudions le contenu de cette variable $profile. Pour cela il est possible de lister le contenu de la variable $profile et de forcer l’affichage de toutes les valeurs en utilisant la commande suivante :

PS> $profile | Format-List * -Force 
 
 
AllUsersAllHosts       : C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 
AllUsersCurrentHost    : C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1 
CurrentUserAllHosts    : C:\Users\Jerome\Documents\WindowsPowerShell\profile.ps1 
CurrentUserCurrentHost : C:\Users\Jerome\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 
Length                 : 76 

On distingue quatre types de profils différents. Nous verrons un peu plus loin à quoi correspond chacun de ces profils.

Notez que, bien qu’ils soient référencés dans la variable $profile, aucun...

Création d’un profil

Par défaut, aucun profil n’est créé. La méthode la plus simple pour créer un profil consiste à utiliser la variable $profile.

En effet, comme nous l’avons vu précédemment, cette variable contient dans ses propriétés les chemins vers les différents profils pris en charge par PowerShell.

Créons à présent un profil qui sera commun à toutes les consoles (ou hôtes) mais qui ne s’appliquera qu’à nous-mêmes.

 Pour ce faire, choisissez la propriété CurrentUserAllHosts de la variable $profile ou simplement utilisez la variable $profile.

 Pour créer votre profil, saisissez la commande suivante :

PS > New-Item -Path $profile -ItemType file -Force 

-Force permet de créer l’arborescence de dossiers si celle-ci n’est pas présente lors de la création du fichier.

Le profil est à présent créé et nous avons la possibilité de modifier ce profil pour ajouter des fonctions ou alias PowerShell.

Modification d’un profil

La modification de votre profil PowerShell est libre et vous pouvez utiliser n’importe quel éditeur de texte pour le modifier. Dans les exemples suivants, nous utiliserons Microsoft Visual Code.

1. Le prompt

Le prompt, ou invite de commande, correspond à l’ensemble des caractères indiquant que l’ordinateur est prêt à recevoir une commande.

Par défaut, il est de la forme suivante : PS CHEMIN_COURANT>

PowerShell démarre par défaut dans le répertoire racine du profil Windows, sous Windows 11 et Windows Server 2025.

C:\Users\ Identifiant de l'utilisateur courant 

Ci-dessous le prompt par défaut :

images/NRI10_03N.png

Une fonction prompt est définie par défaut et est exécutée à chaque lancement d’une session PowerShell. Pour plus d’information, voici le lien de la documentation concernant cette fonction : https://go.microsoft.com/fwlink/?LinkID=225750

Pour modifier le profil, il faudra modifier ou créer une fonction prompt. Il est également possible de modifier différentes choses concernant son comportement sur les erreurs, la taille de la fenêtre, les couleurs...

2. Le profil

a. Modification des couleurs

Il est possible de modifier facilement les couleurs de son environnement, et ce aussi bien pour les caractères que pour la couleur de fond de la fenêtre.

Voici la liste des couleurs possibles :

Black

Blue

Cyan

DarkBlue

DarkCyan

DarkGray

DarkGreen

DarkMagenta

DarkRed

DarkYellow

Gray

Green

Magenta

Red

White

Yellow

La liste des couleurs peut également être obtenue de la façon suivante :

foreach ($color in [enum]::GetValues([System.ConsoleColor])) { 
    Write-Host "Ceci est la couleur $color" -ForegroundColor $color 
} 
images/NRI10_04N.png

 Pour personnaliser la fenêtre PowerShell, utilisez la variable $host puis accédez aux propriétés ui et RawUI.

images/NRI10_05N.png

Deux autres propriétés, ForegroundColor et BackgroundColor, permettent de définir respectivement la couleur du texte et celle de l’arrière-plan...