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
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 :
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éé :
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
Ensuite, éditez le fichier de profil. Il ne reste plus qu'à remplir ce fichier avec vos lignes d'alias (une commande par ligne).
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 !
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.