17/11/2024

PowerShell

Créer des alias persistants en PowerShell

I. Présentation

L'utilisation d'alias est très apprécié lorsque l'on commence à parler ligne de commande, cela facilite la vie et la longueur des commandes, qui peuvent être vraiment longue lorsque l'on commence à ajouter de nombreux arguments... PowerShell intègre évidemment la possibilité de gérer les alias.

Nous allons voir dans ce tutoriel comment créer des alias persistants, c'est à dire qui restent même après un redémarrage du système. Sinon, par défaut, ils sont valables uniquement pour la session PowerShell en cours.

Il existe deux types d'alias :

- Built-in Aliases : Prédéfinis pour Windows, Linux et PowerShell

- User-defined Aliases : Noms alternatifs définis par l'utilisateur

Malheureusement à l'heure actuelle, il n'est pas possible de créer des alias d'une commande contenant des paramètres. L'alias peut porter uniquement sur la commande de base en elle-même.

Rappel : Un alias est un raccourci vers une commande, par exemple l'alias "gal" équivaut à "Get-Alias"

II. La création d'un alias

Avant de parler de persistance, commençons déjà par la création d'un alias. Et même avant cela, on va déjà lister les alias existants :

Get-Alias
Lister les alias PowerShell
Lister les alias PowerShell

Ce qui retournera la liste des alias existants. Cela vous permettra de vérifier s'il existe déjà un alias ou non de la commande pour laquelle vous souhaitez en créer un.

Passons maintenant à la création d'un alias, par l'intermédiaire de la commande "New-Alias" qui s'utilise comme ceci :

New-Alias <nom-alias> <commande>

Où "nom-alias" correspond à la commande que vous souhaitez saisir à la place de commande "commande". Par exemple, pour créer un alias "ping" vers la commande PowerShell équivalente "Test-Connection" on utilisera :

New-Alias ping Test-Connection

Ce qui permet d'utiliser la commande ping comme ceci :

alias2

Quelques paramètres sont disponibles lorsque l'on crée un alias, faisons le point.

-Description : Ajouter une description à l'alias. Ceci est intéressant, pensez aux autres personnes susceptibles de faire face à vos alias !

-Option : None (ne pas définir d'option), ReadOnly (non modifiable sauf en utilisant -Force), Constant (non modifiable même avec -Force) et Private (alias visible uniquement dans le scope définit).

-Scope : L'étendue sur laquelle l'alias est valable - Global, Local ou Script.

Pour vérifier la création de l'alias, on peut effectuer à nouveau un Get-Alias. Sinon de façon plus ciblée :

# Avec PowerShell 4.0
Get-Alias | ? name -eq ping | ft name,description

On remarque la présence de l'alias fraîchement créé :

alias3

On sait désormais comment créer un alias. Je l'aime bien mon alias... comment le rendre persistant ?

III. Persistance des alias

Chaque utilisateur peut disposer d'un profil PowerShell, correspondant à un script PowerShell contenant des commandes qui seront prises en compte au démarrage d'une session PowerShell. Il est possible d'accéder à la location de ce fichier de profil en regardant le contenu de la variable $Profile :

$Profile
E:\Florian_Profil\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Cependant, cela ne signifie pas que le fichier de profil existe forcément. Pour vérifier cela, testez son existence :

Test-Path $Profile

La commande vous retourne "false" : le fichier de profil n'existe pas, à l'inverse si c'est "true" c'est qu'il existe. Uniquement dans le cas où il n'existe pas, créez-le :

New-Item -Path $Profile -ItemType file -Force

Note : Pour que le fichier de profil soit prit en compte, la politique d'exécution de script PowerShell doit être laxiste, il faut la modifier grâce à Set-ExecutionPolicy. Plus d'informations : Modifier la politique d'exécution PowerShell

alias4

Ensuite, éditez le fichier de profil. Il ne reste plus qu'à remplir ce fichier avec vos lignes d'alias (une commande par ligne).

alias5

Pour remplir votre fichier de profil, vous pouvez exporter la liste des alias grâce à Export-Alias. Cependant, cela va exporter l'ensemble des alias et créera des erreurs de doublons concernant les alias qui existent déjà nativement (Built-in Aliases).

Si l'on est un peu rusé... On peut procéder comme ceci : Indiquer une description pour chaque alias personnalisé, et, dans la description indiquer un mot clé qui permettra de retrouver facilement l'ensemble de nos alias. Par exemple, si l'on prend le mot clé "it-connect" on pourra exporter facilement les alias grâce à cette commande :

Get-Alias | ? Description -match "it-connect" | Export-Alias -Path E:\MesAlias.txt

On liste tous les alias on prenant uniquement ceux où la description contient le terme "it-connect" et enfin on exporte le résultat dans le fichier MesAlias.txt. Ouvrez ce fichier et vous devez retrouver uniquement vos alias personnalisés.

Fermez et ouvrez votre console PowerShell, vos alias doivent être accessibles sans avoir besoin d'être recréés !

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Créer des alias persistants en PowerShell

  • Bonjour,

    j’ai créé des alias je souhaiterais les mettrent en adresse principale, pourriez-vous me communiquer la commande à mettre dans PowerShell.
    Merci de votre aide.

    Cordialement.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.