Créer des alias de commandes. Créer un module d'alias de commandes

Introduction

En Powershell, les alias de commandes peuvent vite devenir embêtant.
Il faut distinguer 2 types d'alias : les alias simples, du genre :

alias ttt Notepad

qui permet de créer la commande (alias) 'ttt' pour lancer Notepad (ridicule.. mais c'est pour l'exemple).


Créer des alias permanents

Maintenant, supposons que vous souhaitiez créer des alias permanents (et oui, problème : vos alias ainsi créés ne sont que temporaires !).
Pour cela, plusieurs méthodes, je vous en indique une ici (et une différente pour les alias de commandes complexes plus bas).
Commencez par rajouter une description à votre alias à la noix :

alias ttt Notepad -Description 'ALIAS-PERSO'

Cette description est importante car votre Powershell possède déjà un grand nombre d'alias, déjà créés par le système ! Or il va falloir distinguer vos alias personnels de ceux du système pour les sauvegarder !

Créez donc tous vos alias de commandes simples (comme l'exemple débile au-dessus) puis, exportez vos alias dans un fichier ! (En ne conservant que vos alias perso)

Get-Alias | ? Description -match 'ALIAS-PERSO' | Export-Alias -Path 'C:\.alias-perso.txt'

Désormais, lorsque vous voudrez recharger tous vos alias, en début de session powershell :

Import-Alias -Path 'C:\.alias-perso.txt'

Et voilà...

Bon, ça, c'était la partie simple !


Les alias de commandes complexes

Et ! Les alias de commandes complexes ...
Et là, clairement, Powershell est beaucoup plus contraignant que BASH/SH.
Dès lors que vous avez des ' ' et des ' ' qui se mélangent dans la commande à aliasser.. ça devient impossible.
La solution est donc de créer une fonction !

La fonction suivante va servir de 'variable' englobant notre commande complexe.
- La commande à aliasser ci-dessous permet d'afficher tous les utilisateurs de 3 OU : (DIRECTION, IT, PRET-IMMOBILIER), et de tous les utilisateurs qui seraient membres d'OU à l'intérieur de ces 3 là.
Je définis donc une variable 'fUSERS', puis lorsque la fonction est défini, je place un ';' pour stipuler que je passe à une seconde commande, pour créer l'alias 'USERS' à partir de la fonction fUSERS.. Et je lui donne une petite description !

Function fUSERS {Get-ADUser -Filter * -SearchBase 'OU=DIRECTION,DC=OPENBANK,DC=LAN' -SearchScope Subtree;Get-ADUser -Filter * -SearchBase 'OU=IT,DC=OPENBANK,DC=LAN' -SearchScope Subtree;Get-ADUser -Filter * -SearchBase 'OU=PRET-IMMOBILIER,DC=OPENBANK,DC=LAN' -SearchScope Subtree}; New-Alias USERS fUSERS -Description 'Affiche tous les utilisateurs créés'

Créer un module d'alias

Mais, nous allons rapidement avoir un problème... et de taille !
Ces alias ne perdurent pas !
Lorsque vous quittez votre session Powershell, ils disparaissent...
Comment faire donc ??
Vous pensez à un script, un simple .bat ou .ps1 à ré-exécuter en début de session.. et bien non, ça ne fonctionnera pas, raté.

Il faut tricher et créer un 'module'.
Qu'est-ce que c'est, un simple fichier texte avec l'extension .psm1 contenant toutes vos commandes d'alias/fonction !
Mettez-y tous les alias/fonctions (comme l'exemple donné ci-dessus) que vous souhaitez dans ce fichier, puis à chaque démarrage de session Powershell, importez le !

Import-Module 'C:\.alias-perso.psm1'

Et voilà, le tour est joué !


⬆️ Retour en haut de la page