Share this post:

Un profil PowerShell est un script qui s’exécute au démarrage de PowerShell et qui a un nom spécifique.

PowerShell prend en charge plusieurs profils pour les utilisateurs et les programmes hôtes. Quand on dit programmes hôtes, on pense principalement à la console Windows PowerShell et à Windows PowerShell ISE. Cependant, il ne crée pas les profils pour vous, alors continuez à lire cet article et je vais vous montrer comment créer et personnaliser les profils avec des exemples impressionnants.

Nous pouvons créer 3 fichiers de profil pour chaque utilisateur sur le système, un pour chaque hôte (Windows PowerShell Console et ISE) et un pour tous les hôtes.

En outre, il est possible de créer 3 fichiers de profil pour tous les utilisateurs si nous voulons appliquer une certaine personnalisation applicable à tous les utilisateurs.

IMPORTANT : Si vous avez une installation séparée de PowerShell version 6, alors nous pouvons créer 4 profils supplémentaires. Deux fichiers de profil par utilisateur et deux fichiers de profil pour tous les utilisateurs.

Table des matières

Commandes de profil PowerShell, hôtes, noms de profil, emplacements de profil

Voici un tableau qui montre les types de profil, la commande qui peut être utilisée pour tester si un profil existe et les créer si nous le voulons, quel hôte ce profil s’applique, le nom du fichier de profil et l’emplacement du fichier de profil.

# Type de profil Commande Hôte Nom du fichier de profil Endroit du fichier de profil
1* Utilisateur actuel, Hôte actuel $profile Console Microsoft.PowerShell_profile.ps1 $HOME\ Documents\WindowsPowerShell\
2 Tous les utilisateurs, hôte actuel $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME
3 Utilisateur actuel, tous les hôtes $profile.CurrentUserAllHosts Console, ISE Profile.ps1 $HOME\ Documents\WindowsPowerShell\
4 Tous les utilisateurs, tous les hôtes $profile.AllUsersAllHosts Console, ISE Profile.ps1 $PSHOME\
5** Utilisateur actuel, Hôte actuel $profile ISE Microsoft.PowerShellISE_profile.ps1 $HOME\ Documents\WindowsPowerShell\
6** Tous les utilisateurs, hôte actuel $profile.AllUsersCurrentHost ISE Microsoft.PowerShellISE_profile.ps1 $PSHOME

Tableau 1 – Types de profils PowerShell, commandes, hôtes, noms de fichiers, emplacements de fichiers

* Au lieu de $profile, nous pouvons utiliser $profile.Commande CurrentUserCurrentHost.

** Exécuter la commande depuis la console Windows PowerShell ISE.

Pour que vous trouviez les valeurs correctes des variables $HOME et $PSHOME sur votre installation de PowerShell, veuillez exécuter les commandes suivantes :

$HOME

En général, la valeur de $HOME est C :\Users\user_name

$HOME value
$PSHOME

Usuellement, la valeur de $PSHOME est C:\Windows\System32\WindowsPowerShell\v1.0

$PSHOME value

REMEMBLEZ-VOUS : Si vous avez une installation séparée de PowerShell version 6, alors nous pouvons créer des profils supplémentaires. Deux par utilisateur actuel et deux pour tous les utilisateurs.

# Type de profil Commande Hôte Nom du fichier du profil Profil. Emplacement du fichier
1 CurrentUserCurrentHost $profile Console Microsoft.PowerShell_profile.ps1 $HOME\ Documents\PowerShell\
2 CurrentUserAllHosts $profile.CurrentUserAllHosts profile.ps1 $HOME\ Documents\PowerShell\
3 AllUsersCurrentHost $profile.AllUsersCurrentHost Console Microsoft.PowerShell_profile.ps1 $PSHOME\
4 AllUsersAllHosts $profile.AllUsersAllHosts profile.ps1 $PSHOME\

Tableau 2 – PowerShell v6 Types de profils, commandes, hôtes, noms de fichiers, emplacements de fichiers

En général, la valeur de $HOME est C :\Users\user_name

Valeur de $HOME pour PowerShell v6

En général, la valeur de $PSHOME est C :\Program Files\PowerShell\6

Valeur de $PSHOME pour PowerShell v6

NOTICE : La différence entre les noms de dossier dans Documents Le dossier PowerShell v6 est PowerShell et le nom de dossier des versions antérieures de PowerShell est WindowsPowerShell.

Comment créer un profil PowerShell étape par étape

Je vais vous montrer ici exactement comment créer un profil PowerShell.

Créer un profil PowerShell pour l’utilisateur actuel et l’hôte actuel

C’est le profil PowerShell par défaut de Windows.

Suivez ces étapes pour créer un profil PowerShell pour la console en tant qu’hôte et l’utilisateur actuel:

Étape 1 : Ouvrez la console PowerShell de Windows (hôte actuel).

Window PowerShell Console

Étape 2 : Tout d’abord, nous allons tester si le profil existe ou non dans notre installation PowerShell. Tapez la commande suivante dans la console Window PowerShell, et appuyez sur la touche ENTER.

Test-Path $PROFILE

Rappel : Valeur du paramètre pour la commande Test-PathLet nous obtenons à partir du tableau 2 – colonne de commande. ($profile, $profile.CurrentUserAllHosts, etc)

Etape 3 : Si le résultat de la commande précédente est faux, le profil n’existe pas donc passez à l’étape 4. Si le résultat est vrai, le fichier de profil existe donc passez à l’étape 5

Le fichier de profil n’existe pas (faux)

Étape 4 : Puisque le profil n’existe pas nous allons en créer un avec la commande suivante que vous allez taper et appuyer sur ENTRÉE.

New-Item -Type File -Force $PROFILE
Le fichier de profil a été créé
Microsoft.PowerShell_profile.ps1 – Profil pour l’utilisateur actuel et Console comme hôte

Étape 5 : Le profil a été créé et nous pouvons ouvrir le fichier de profil dans PowerShell ISE avec la commande suivante, et appuyez sur ENTRÉE.

ise $PROFILE
Ouvrir Windows PowerShell ISE avec le fichier Profil

Étape 6 : Le fichier Profil vide a été ouvert dans Windows PowerShell ISE

Windows PowerShell ISE a ouvert un fichier Profil vide Microsoft.PowerShell_profile.ps1

Etape 7 : Continuez à l’exemple 1 pour voir comment personnaliser ce profil.

Création d’un profil PowerShell pour l’utilisateur actuel et tous les hôtes

Suivez ces étapes pour créer un profil PowerShell:

Etape 1 : Ouvrez la console Windows PowerShell (C’est juste un hôte de choix pour exécuter les commandes et nous pouvons faire ces étapes à partir de Windows PowerShell ISE aussi).

Etape 2 : Tout d’abord, nous allons tester si le profil existe ou non dans notre installation PowerShell. Tapez la commande suivante dans la console PowerShell de Windows, et appuyez sur ENTRÉE.

Test-Path $PROFILE.CurrentUserAllHosts

Rappel : Valeur du paramètre pour la commande Test-PathLet nous obtenons à partir du tableau 2 – colonne de commande. ($profile, $profile.CurrentUserAllHosts, etc)

Etape 3 : Si le résultat de la commande précédente est faux, le profil n’existe pas donc passez à l’étape 4. Si le résultat est vrai, le fichier de profil existe donc passez à l’étape 5

Le fichier de profil n’existe pas (faux)

Étape 4 : Puisque le profil n’existe pas nous allons en créer un avec la commande suivante que vous allez taper et appuyer sur ENTRÉE.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts
Le fichier profil a été créé
Fichier profil.ps1 – Profil pour l’utilisateur actuel et tous les hôtes

Etape 5 : Le profil a été créé et nous pouvons ouvrir le fichier de profil dans PowerShell ISE avec la commande suivante, et appuyer sur ENTRÉE.

ise $PROFILE.CurrentUserAllHosts

Etape 6 : Le fichier de profil vide a été ouvert dans Windows PowerShell ISE

Windows PowerShell ISE a ouvert un fichier de profil vide profile.ps1

Etape 7 : Continuez à l’exemple 2 pour voir comment personnaliser le profil.

Nous répétons le processus pour les autres types de profil la seule chose est d’utiliser la bonne valeur de variable dans la colonne Commande du Tableau 1 – Types de profil PowerShell, commandes, hôtes, noms de fichiers, emplacements de fichiers.

  • $profile.AllUsersCurrentHost
  • $profile.AllUsersAllHosts

Rappel : Lorsque vous voulez créer un profil pour Windows PowerShell ISE en tant qu’hôte, vous devez ouvrir Windows PowerShell ISE et suivre les étapes en exécutant les commandes de la console Windows PowerShell ISE (regardez la capture d’écran ci-dessous)

Windows PowerShell. Console ISE et fichier de profil respectif pour l’ISE en tant qu’hôte

Comment éditer un profil Windows PowerShell avec des exemples

Exemple 1 – Profil pour la console en tant qu’hôte et utilisateur actuel (Utilisateur actuel – Hôte actuel)

Nom du profil : Microsoft.PowerShell_profile.ps1
Emplacement du profil : $Home\Documents\WindowsPowerShell\
Utilisé pour : Dans cet exemple, j’ai changé les couleurs de fond des polices pour qu’elles soient plus lisibles.

Voici le code dans le fichier de profil Microsoft.PowerShell_profile.ps1. Il suffit de copier le code dans le fichier de profil et d’enregistrer les modifications pour avoir le même schéma de couleurs ou de le personnaliser à votre goût.

Set-PSReadLineOption -colors @{ Operator = 'Cyan' Parameter = 'Cyan' String = 'White'}
Code du fichier de profil Microsoft.PowerShell_profile.ps1

Sur certains anciens systèmes le réglage de Set-PSReadLineOption CmdLet était un peu différent comme dans l’exemple ci-dessous.

Set-PSReadlineOption -TokenKind String -ForegroundColor MagentaSet-PSReadlineOption -TokenKind Operator -ForegroundColor CyanSet-PSReadlineOption -TokenKind Parameter -ForegroundColor Cyan 

Les couleurs des polices ont été modifiées de ceci…

Les couleurs des polices de la console PowerShell sans personnalisation du profil.

… à ceci.

Couleurs de police de la console PowerShell après personnalisation du profil.

Utiliser Get-PSReadLineOption CmdLet pour voir les arguments de couleur valides et les valeurs actuelles des arguments (couleurs).

Get-PSReadLineOption CmdLet et le schéma des couleurs actuelles

Exemple 2 – Profil pour à la fois la console Windows PowerShell et l’ISE en tant qu’hôtes (utilisateur actuel – tous les hôtes)

Nom du profil : profile.ps1
Emplacement du profil : $Home\Documents\WindowsPowerShell
Utilisé pour : Lorsque vous souhaitez personnaliser simultanément la console Windows PowerShell et ISE ou exécuter vos propres fonctions avancées ou CmdLets dans la console PowerShell et ISE.

Dans cet exemple, je charge mes propres modules PowerShell pour certains CmdLets que j’ai écrits et qui font partie du projet PowerShell Efficiency Booster. Ce projet est une bibliothèque de mes propres CmdLets organisés en plusieurs modules et je vous recommande vivement de télécharger le fichier zip des fichiers du projet et de tester dans votre propre environnement et de pouvoir me suivre dans les articles de ce blog.

Voici les commandes pour importer les modules et le contenu du fichier profil.

Import-Module 02utilsImport-Module 03commonImport-Module 04maintenance
Profil.ps1 code du fichier de profil

Nous pouvons rapidement tester que les modules importés sont réellement chargés lorsque nous ouvrons la console PowerShell en utilisant la commande suivante :

Get-Module -ListAvailable
Les modules importés dans le fichier Profile sont chargés dans l’environnement de la console PowerShell

Pour mieux comprendre l’interconnexion des profils PowerShell, des modules et des CmdLets, veuillez lire le sous-titre suivant de ce post : Comment organiser vos propres CmdLets PowerShell dans des modules PowerShell et quel profil utiliser pour organiser cette structure et Comment nous lions ensemble le profil PowerShell, le module et le CmdLet.

Exemple 3 – Profil pour ISE en tant qu’hôte (utilisateur actuel – hôte actuel)

Nom du profil : Microsoft.PowerShellISE_profile.ps1
Emplacement du profil : $Home\Documents\WindowsPowerShell\
Utilisé pour : Dans cet exemple, j’ai importé le module qui contient des CmdLets qui seront des Add-ons pour Window PowerShell ISE.

Voici la commande qui doit être copiée dans le fichier de profil.

Import-Module 09addons
Microsoft.PowerShellISE_profile.ps1 code du fichier de profil

En conséquence, nous aurons deux Add-ons dans Windows PowerShell ISE. Veuillez lire ces deux articles afin d’en savoir plus sur la façon de les coder.

  • Comment écrire des fonctions avancées ou des CmdLets avec PowerShell (rapide)
  • Comment écrire des aides pour les fonctions ou les CmdLets de PowerShell (rapide)
Les compléments de Windows PowerShell ISE.ons

Nous pouvons rapidement tester que les modules importés sont réellement chargés lorsque nous ouvrons la console PowerShell en utilisant la commande suivante :

Get-Module -ListAvailable
Le module importé dans le fichier de profil est chargé dans l’environnement PowerShell ISE

NOTE : Windows PowerShell ISE importe quatre modèles à partir de deux fichiers de profil ( profil.ps1 et Microsoft.PowerShellISE_profile.ps1 ).

Exemple 4 – Profil pour la console Windows PowerShell et ISE en tant qu’hôtes (Tous les utilisateurs – Tous les hôtes)

Nom du profil : profile.ps1
Emplacement du profil : $PSHOME
Utilisé pour : Dans cet exemple, j’ai seulement changé le titre de la console PowerShell de la fenêtre et de l’ISE pour l’utilisateur actuel et l’administrateur.

Voici le code dans le fichier Profile:

$NTIdentity = ::GetCurrent()$NTPrincipal = new-object Security.Principal.WindowsPrincipal $NTIdentity$IsAdmin = $NTPrincipal.IsInRole(::Administrator)$hostversion="v$($Host.Version.Major).$($Host.Version.Minor)"$hostname = $host.NameIF ($IsAdmin){ if($hostname -eq "ConsoleHost") { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell $hostversion - Running as ADMINISTRATOR" } else { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell ISE $hostversion - Running as ADMINISTRATOR" }}Else{ if($hostname -eq "ConsoleHost") { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell $hostversion" } else { $host.ui.RawUI.WindowTitle = "Your Text in Windows PowerShell ISE $hostversion" }}

Vous pouvez voir que les deux titres de la console PowerShell et de l’ISE ont un texte personnalisé, le nom de l’hôte et la version de PowerShell dans le titre.

Texte personnalisé pour le titre de la console
Texte personnalisé pour le titre de la console lors de l’exécution en tant qu’administrateur
Texte personnalisé. pour le titre de Windows PowerShell ISE

Commandes PowerShell utiles à connaître concernant les profils

Voici quelques commandes PowerShell utiles qui vous aideront à obtenir des informations sur les profils.

A la suite de l’exécution de l’une des commandes de profil, vous obtiendrez l’emplacement du fichier de profil.

$profile$profile.AllUsersCurrentHost$profile.CurrentUserAllHosts$profile.AllUsersAllHosts
Commandes de profil

IMPORTANT : Lorsque vous voulez trouver l’emplacement du fichier de profil pour Windows PowerShell ISE en tant qu’hôte, vous devez ouvrir Windows PowerShell ISE et exécuter les commandes de profil à partir de la console Windows PowerShell ISE

Utiliser Test-Path CmdLet pour vérifier si le fichier de profil existe sur le système ou non. Si vous obtenez True comme résultat le profil existe et false signifie que le fichier de profil n’existe pas. Utilisez les commandes du tableau 1 – PowerShell Types de profil, commandes, hôtes, noms de fichier, emplacements de fichier pour vérifier d’autres types de profil, qu’ils existent ou non.

Test-Path $PROFILE

Cette ligne de code va créer un fichier de profil. Utilisez les commandes du tableau 1 – Types de profil PowerShell, commandes, hôtes, noms de fichiers, emplacements de fichiers pour créer d’autres types de profil.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts

Si vous voulez lire le contenu du fichier de profil soit dans Notepad ou Window PowerShell ISE alors utilisez ces deux commandes.

ise $PROFILEnotepad $PROFILE

Personnellement, je préfère Windows PowerShell ISE car c’est un environnement plus pratique pour écrire du code PowerShell.

Utilisez cette ligne de code pour obtenir les emplacements de profil pour tous les types de profil.

$profile | Get-Member -Type NoteProperty | Select-Object Definition
Lieux des fichiers de profil

Vérifiez ces deux variables pour obtenir respectivement l’emplacement de l’installation de PowerShell et du répertoire personnel.

$pshome$home 

Comment choisir le fichier de profil à utiliser

Si vous utilisez plusieurs applications hôtes comme la console Windows PowerShell et ISE, mettez toute la personnalisation dans le profil $PROFILE.CurrentUserAllHosts pour l’utilisateur actuellement connecté. Par exemple, j’ai créé mes propres CmdLets organisées en Modules donc je mets les commandes pour charger ces modules dans ce profil puisque je veux que les modules soient chargés à la fois lorsque nous ouvrons la Console PowerShell et ISE. Regardez l’exemple 2 pour l’illustration.

Si vous voulez faire une personnalisation spécifique à l’application hôte, mettez tout le code de personnalisation dans un profil spécifique à cette application hôte. Par exemple, je change la couleur de fond des polices de la console PowerShell pour qu’elles soient plus visibles ou j’ai chargé des modules qui sont des add-ons pour ISE. J’ai montré cela dans l’exemple 1 pour la console PowerShell et l’exemple 3 pour PowerShell ISE.

Si vous devez personnaliser PowerShell pour de nombreux utilisateurs et que vous êtes un administrateur alors suivez ces conseils :

  • Stockez la personnalisation la plus courante dans le $PROFILE.AllUsersAllHosts profil puisque c’est la portée la plus large
  • Si vous voulez personnaliser Windows PowerShell pour tous les utilisateurs mais spécifique à une application hôte. Par exemple, une personnalisation différente pour Windows PowerShell Console et une autre personnalisation pour Windows PowerShell ISE, alors mettez le code dans les profils $PROFILE.AllUsersCurrentHost
  • Écrivez le code pour des utilisateurs particuliers dans les profils spécifiques aux utilisateurs. Fondamentalement, cela signifie utiliser soit le profil $PROFILE.CurrentUserAllHosts, soit le profil $PROFILE.CurrentUserCurrentHost.

Comment exécuter la console ou l’ISE sans profils chargés

Ouvrir la boîte de dialogue d’exécution Win + R et ouvrir PowerShell avec l’option -NoProfile.

PowerShell.exe -NoProfile

Avertissement : Temps de chargement de PowerShell

Avec un profil plus grand et plus complexe, cela peut commencer à avoir un effet sur la vitesse d’ouverture de PowerShell. Pour dépanner si votre profil est responsable ou non des mauvais temps de chargement de PowerShell, ouvrez la boîte de dialogue d’exécution Win + R et ouvrez PowerShell avec l’option -NoProfile.

PowerShell.exe -NoProfile

Profils et sessions distantes

Les profils PowerShell ne sont pas exécutés automatiquement dans les sessions distantes, donc les commandes que les profils ajoutent ne sont pas présentes dans la session distante. En outre, la variable automatique $PROFILE n’est pas remplie dans les sessions distantes.

Pour exécuter un profil dans une session, utilisez la commande Invoke-Command CmdLet.

Par exemple, la commande suivante exécute le profil « Utilisateur actuel, hôte actuel » de l’ordinateur local dans la session en $s.

Invoke-Command -Session $s -FilePath $PROFILE

Comment organiser vos propres CmdLets PowerShell dans des modules et des profils PowerShell

Pour que vous compreniez le lien entre le profil PowerShell, le module et le CmdLet, j’ai créé le projet PowerShell Efficiency Booster avec beaucoup de mes propres CmdLets organisés dans un tas de modules qui sont chargés dans chaque session PowerShell avec le profil PowerShell chaque fois que j’ouvre la console Windows PowerShell ou ISE.

N’hésitez pas à télécharger le fichier zip qui contient le code du projet afin que vous puissiez facilement suivre. Dans le fichier ReadMe.txt se trouve une explication des étapes d’installation et de personnalisation, donc veuillez lire les instructions dans ce fichier. Mieux encore, vous pouvez lire les instructions d’installation et de personnalisation en lisant l’article suivant : How To Install And Configure PowerShell : CmdLets, Modules, Profils.

Je vais utiliser l’analogie de la librairie, des étagères et des livres pour expliquer le lien entre le profil Powershell, le module et le CmdLet.

Par exemple, imaginez que vous voulez en apprendre davantage sur le script PowerShell et que vous voulez acheter quelques livres sur le sujet à la librairie.

Vous entrez dans la librairie et vous voyez de nombreuses étagères avec différentes étiquettes pour les départements de livres comme Art, Affaires, Ordinateurs, Littérature, Voyages, etc. Bien sûr, vous vous dirigez vers les étagères étiquetées Ordinateurs et vous y trouvez le livre qui explique le scriptage PowerShell que vous voulez acheter.

Revenons maintenant au monde PowerShell et relions l’histoire de l’analogie avec PowerShell:

  • Le CmdLet que nous utilisons livré avec PowerShell ou certains de nos propres CmdLet écrits est le livre.
  • Le code de ce CmdLet est le contenu du livre.
  • Le module PowerShell est l’étagère de la librairie d’un certain département de librairie comme par exemple l’étagère du département de librairie des ordinateurs où notre livre est mis.
  • Enfin, le profil PowerShell est la librairie elle-même.

Donc, chaque fois que nous ouvrons la console Windows PowerShell ou ISE, nous ouvrons notre session et avec cette session, les fichiers de profil à charger et la personnalisation ont été faites pour configurer notre environnement PowerShell comme nous voulons être.

Dans le cas des modules et des CmdLets. Le fichier de profil va importer les modules et le module va charger chaque script CmdLet qui appartient à ce module.

Puisque j’aime utiliser mes propres CmdLets à la fois dans la console Windows PowerShell et dans les applications hôtes ISE, je préfère créer un $profile.CurrentUserAllHosts de type profil qui n’est rien d’autre que le fichier Profile.ps1 créé dans :

  • $Home\ Documents\WindowsPowerShell\ dossier pour PowerShell version 5.1 et plus
  • $Home\ Documents\PowerShell\ dossier pour PowerShell version 6.0.

Comment nous lions ensemble le profil PowerShell, le module, Et CmdLet

Voici une courte description de cette structure faite en PowerShell

  • Créer un profil PowerShell
  • Créer un dossier Module et une structure de fichiers
  • Personnaliser le profil pour importer les modules nécessaires
  • .

  • Créer le script PowerShell CmdLet
  • Écrire son propre code de fonction CmdLet
  • Personnaliser le dossier Module pour importer le script CmdLet

J’illustrerai ce processus avec les exemples du projet PowerShell de Booster d’efficacité du profil, Modules, et CmdLets afin qu’il soit plus facile pour quiconque de comprendre l’ensemble du processus. Donc, j’encourage encore une fois fortement tout le monde à installer le fichier zip fourni.

Suivez ces étapes pour créer un Profil, un Module, un CmdLet PowerShell et les lier ensemble:

Etape 1 : Ouvrez la Console Windows PowerShell

Etape 2 : Tout d’abord, nous allons tester si le Profil existe ou non dans notre installation PowerShell. Tapez la commande suivante à la fenêtre PowerShell, et appuyez sur ENTER

Test-Path $PROFILE.CurrentUserAllHosts

Étape 3 : Si le résultat de la commande précédente est faux, le profil n’existe pas, alors passez à l’étape 4. Si le résultat est vrai, le fichier de profil existe donc passez à l’étape 5

Étape 4 : Puisque le profil n’existe pas nous allons en créer un avec la commande suivante que vous allez taper et appuyer sur ENTRÉE.

New-Item -Type File -Force $PROFILE.CurrentUserAllHosts

Étape 5 : Le profil a été créé et nous pouvons ouvrir le fichier de profil dans PowerShell ISE avec la commande suivante, et appuyer sur ENTRÉE.

ise $PROFILE.CurrentUserAllHosts

Etape 6 : Le fichier de profil a été ouvert dans PowerShell ISE.

Etape 7 : Maintenant, nous devons créer une structure de dossier Module et les fichiers nécessaires.

Etape 8 : Dans le dossier où nous avons créé notre fichier Profil, créez un dossier Module avec le nom exact Modules. Ici nous garderons la structure de dossier de tous nos Modules.

Dossier Modules

Etape 9 : Dans le dossier Modules créer les dossiers pour chaque Module que vous voulez avoir. Par exemple, j’ai créé les modules suivants dans Efficiency Booster PowerShell Project.

Modules de Efficiency Booster PowerShell Project

Étape 10 : Dans chaque dossier Module, nous créons le fichier avec l’extension .psm1 et le même nom exact que le dossier Module. Par exemple, dans le dossier 03common, nous créons le fichier 03common.psm1

Fichier psm1 du module PowerShell

Étape 11 : En option, nous pouvons créer un fichier manifeste (.psd1 extension) pour chaque module qui décrira davantage ce dossier.

Étape 12 : Dans le même dossier de module, nous créons le fichier avec l’extension .ps1 (fichier de script PowerShell régulier) où nous allons écrire le code pour notre propre CmdLet. Par exemple, nous pouvons créer le fichier GetCPUInfo.ps1 où nous écrirons le code pour notre propre CmdLet Get-CPUInfo.

Fichier de script Get-CPUInfo CmdLet

Étape 13 : Maintenant, nous sommes prêts à écrire notre propre code CmdLet et à le scripter. N’hésitez pas à consulter l’exemple Get-CPUInfo et les autres CmdLet du projet PowerShell de l’amplificateur d’efficacité. Dans de futurs articles, j’écrirai plus de détails sur chaque CmdLet du projet. Pour l’instant, téléchargez le code source du projet ici.

Code source du CmdLet Get-CPUInfo

Étape 14 : Lier un script CmdLet au bon module PowerShell. Ouvrez le fichier .psm1 du module et écrivez cette ligne de code :
. $psScriptRoot\NameOfCmdLetScriptFile.ps1
Par exemple, pour le CmdLet Get-CPUInfo nous écrivons cette ligne de code dans le fichier 03common.Fichier psm1:

. $psScriptRoot\GetCPUInfo.ps1 
Le lien entre le fichier de script CmdLet et le module

Etape 15 : Dans le fichier de script du profil, nous importons le module qui contient notre fichier de script CmdLet donc nous écrivons cette commande dans le fichier du profil.
Import-Module ModuleName
Par exemple, notre CmdLet Get-CPUInfo fait partie du module 03common donc nous écrivons ce code dans le profil:

Import-Module 03common
Le lien entre le profil et le module

Étape 16 : Nous répétons les étapes 9 -15 pour chaque module et CmdLet que nous voulons avoir dans notre profil et être chargé avec chaque session PowerShell que nous démarrons.

Etape 17 : Nous testons que tous les modules importés sont chargés lorsque nous ouvrons un certain hôte. Nous pouvons lister les modules en utilisant la commande suivante:

Get-Module -ListAvailable
Modules chargés dans l’environnement de la console PowerShell

Étape 18 : Nous pouvons tester que toutes les CmdLets de chaque module sont chargées dans l’environnement. Voici l’exemple de commande utile:

Get-Command -Module 02utils
Les CmdLets chargés dans les environnements de la console PowerShell pour le module 02utils

Articles utiles du profil PowerShell

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.