PowerShell Profiles

Dans ce tutoriel, nous allons voir les profils PowerShell et leur utilisation. Les profils PowerShell vous aident à personnaliser votre environnement et à ajouter des éléments pour chaque session PowerShell que vous démarrez. Un profil PowerShell est un script qui s’exécute à chaque fois que nous démarrons PowerShell. Vous êtes en mesure d’utiliser un profil PowerShell comme script de connexion pour personnaliser l’environnement. En utilisant un profil PowerShell, vous pouvez ajouter des commandes, alias, fonctions, variables, snap-ins, modules, PSDrives et tout autre élément spécifique aux sessions dans votre environnement. Vous n’aurez pas à les importer ou à les recréer à chaque fois que vous exécuterez PowerShell. Ils seront chargés automatiquement. PowerShell supporte plusieurs profils pour les utilisateurs et les programmes hôtes. PowerShell ne crée aucun profil pour vous.

Si vous voulez des commandes, des variables, des variables de préférence, des alias, des fonctions, des commandes (sauf Set-ExecutionPolicy) et des modules PowerShell spécifiques à la session que vous utilisez fréquemment, vous pouvez utiliser des profils pour les charger dans toutes les sessions futures.

Fichiers de profil

La console PowerShell prend en charge les profils suivants :

  • $Home\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 – Utilisateur actuel, hôte actuel
  • $Home\Documents\PowerShell\Profile.ps1 – Utilisateur actuel, tous les hôtes
  • $PsHome\Microsoft.PowerShell_profile.ps1 – Tous les utilisateurs, hôte actuel
  • $PsHome\Profile.ps1 – Tous les utilisateurs, tous les hôtes

Les profils ci-dessus sont présentés par ordre de priorité. Le premier profil de la liste a l’ordre de préséance le plus élevé. Comme vous pouvez le voir dans les profils ci-dessus, nous avons deux variables. Les variables $PSHome et $Home présentent les valeurs suivantes.

  • $PSHome – Stocke le répertoire d’installation de PowerShell
  • $Home – Stocke le répertoire d’origine de l’utilisateur actuel

Les autres programmes qui hébergent PowerShell peuvent prendre en charge leurs propres profils. L’environnement de script intégré (ISE) PowerShell prend en charge les profils spécifiques à l’hôte suivants.

  • $Home\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1 – Utilisateur actuel, hôte actuel
  • $PsHome\Microsoft.PowerShellISE_profile.ps1 – Tous les utilisateurs, hôte actuel

Selon Microsoft, dans l’aide PowerShell, le profil « CurrentUser, Current Host » est le profil le plus souvent désigné comme « votre profil PowerShell ».

Variable de profil

Dans PowerShell, nous avons une variable automatique appelée $Profile. Tous les chemins de profil PowerShell qui sont disponibles dans la session actuelle sont stockés dans la variable $Profile. En visualisant la variable $Profile, vous verrez le chemin du profil.

La variable $Profile stocke le chemin du profil « Utilisateur actuel, hôte actuel ». Les autres profils sont enregistrés dans les propriétés de note de la variable $Profile.

Vous pouvez spécifier un profil en utilisant les propriétés de la variable. Dans la console Windows PowerShell, nous avons les valeurs suivantes dans la variable $Profile.

  • $Profile – Utilisateur actuel, hôte actuel
  • $Profile.CurrentUserCurrentHost – Utilisateur actuel, hôte actuel
  • $Profile.CurrentUserAllHosts – Utilisateur actuel, tous les hôtes
  • $Profile.AllUsersCurrentHost – Tous les utilisateurs, hôte actuel
  • $Profile.AllUsersAllHosts – Tous les utilisateurs, tous les hôtes

Vous pouvez utiliser la variable $Profile dans vos commandes.

Code:

Test-Path -Path $PROFILETest-Path -Path $PROFILE.CurrentUserCurrentHostTest-Path -Path $PROFILE.CurrentUserAllHostsTest-Path -Path $PROFILE.AllUsersCurrentHostTest-Path -Path $PROFILE.AllUsersAllHosts

Sortie:

Les commandes ci-dessus testent si le profil spécifié a été créé. Comme vous pouvez le constater, la réponse est fausse pour chacune d’entre elles. Comme vous nous l’avons déjà mentionné, les profils ne sont pas créés par défaut. Vous devrez les créer.

Créer un profil

Pour créer un profil, vous devez utiliser la commande suivante.

Code:

New-Item -ItemType File -Path $profile -Force

La commande ci-dessus créera un profil pour « Utilisateur actuel, Hôte actuel ».

Notez que la commande ci-dessus remplacera tout profil existant. Si vous voulez vous assurer que vous ne remplacerez pas un profil qui existe déjà et que vous perdrez les modifications que vous avez déjà appliquées, vous pouvez essayer ce qui suit.

Code:

if (-not (Test-Path -Path $profile.AllUsersAllHosts)){ New-Item -ItemType File -Path $profile.AllUsersAllHosts -Force}

La commande ci-dessus vérifiera s’il existe un profil pour « Tous les utilisateurs, tous les hôtes » et s’il n’existe pas, elle créera le profil.

Pour créer un profil, vous devrez exécuter la console PowerShell en tant qu’administrateur. Ceci s’applique à partir de Windows Vista et des versions ultérieures.

Modifier un profil

Si un profil existe et que vous devez appliquer quelques modifications ou ajouts, vous devez utiliser un éditeur de texte pour modifier le profil. En utilisant le bloc-notes est un moyen facile d’éditer le profil.

Code:

notepad $profile

Comme vous pouvez le voir ci-dessous mon profil actuel est configuré pour fournir un message de bienvenue lorsque j’ouvre ma console.

Maintenant je vais utiliser la commande ci-dessus pour appliquer quelques changements à mon profil.

Ci-après sont les changements que j’ai appliqués.

Puis quand j’ai redémarré la console PowerShell, comme vous pouvez le voir les changements ont été appliqués.

Lignes directrices pour les profils

Ci-après je vais fournir quelques lignes directrices sur pour la configuration de vos profils, comme fourni par Microsoft.

Si vous utilisez plusieurs applications hôtes, mettez les éléments que vous utilisez dans toutes les applications hôtes dans votre $Profile.CurrentUserAllHostsprofil. Mettez les éléments qui sont spécifiques à une application hôte, comme une commande qui définit la couleur d’arrière-plan pour une application hôte, dans un profil spécifique à cette application hôte.

Si vous êtes un administrateur qui personnalise PowerShell pour de nombreux utilisateurs, suivez ces directives :

  • Stockez les éléments communs dans le profil $profile.AllUsersAllHosts
  • Stockez les éléments spécifiques à une application hôte dans des profils $profile.AllUsersCurrentHost spécifiques à l’application hôte
  • Stockez les éléments pour des utilisateurs particuliers dans les profils spécifiques à l’utilisateur

Veuillez vérifier la documentation de l’application hôte pour toute mise en œuvre spéciale des profils PowerShell.

Aucun profil

Même si vous avez créé des profils à charger chaque fois que vous ouvrez votre console, vous êtes autorisé à exécuter PowerShell sans aucun profil à charger. Vous pouvez le faire en exécutant PowerShell avec le paramètre -NoProfile. Cela peut être fait à partir de cmd.exe, de la boîte de dialogue Exécuter ou de PowerShell lui-même.

Code:

PowerShell -NoProfile

Politique d’exécution

La politique d’exécution de PowerShell détermine si vous pouvez exécuter des scripts et charger des fichiers de configuration, y compris les profils. La politique d’exécution « restreinte » est la politique par défaut. Vous pouvez trouver plus d’informations sur la politique d’exécution PowerShell ici. Si vous utilisez la politique « Restreint », elle empêche l’exécution de tous les scripts, y compris les profils. Le contenu du profil n’est pas appliqué. Une commande Set-ExecutionPolicy définit et modifie votre politique d’exécution dans toutes les sessions PowerShell, car la valeur est enregistrée dans le registre. Vous n’avez pas à la définir lorsque vous ouvrez la console, ni à enregistrer une commande Set-ExecutionPolicy dans votre profil.

Profil sur la session distante

Les profils PowerShell ne sont pas exécutés automatiquement dans les sessions distantes, de sorte que les commandes que les profils ajoutent ne sont pas présentes dans la session distante. De plus, la variable automatique $Profile n’est pas remplie dans les sessions distantes.

Si nous voulons exécuter le profil depuis notre ordinateur local, vers une session distante, nous devons utiliser le cmdlet Invoke-Command.

L’exemple ci-dessous exécutera le profil local vers une session distante.

Code:

$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -FilePath $profile

Sortie:

Comme le profil ne sera pas peuplé dans la session distante, nous pouvons également charger le profil distant dans la session. Vérifiez l’exemple ci-dessous.

Code:

$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -ScriptBlock {. "$env:USERPROFILE\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

Sortie:

J’espère que le tutoriel sur les profils PowerShell est utile.

Veuillez me faire part de vos commentaires et de vos réflexions.

Vos commentaires sont appréciés.

Liens connexes

  • Tutoriels PowerShell
  • Scripts PowerShell
  • A propos des profils | Docs Microsoft
  • Variables automatiques PowerShell
  • Opérateurs logiques PowerShell
  • PowerShell Execution Policy
  • Test-…Chemin – Docs Microsoft
  • Nouveau-Item – Microsoft Docs
  • Write-Output – Microsoft Docs
  • Set-ExecutionPolicy – Microsoft Docs
  • Invoke-Command – Microsoft Docs
Summary
Nom de l’article
PowerShell Profiles
Description
PowerShell Profiles. Dans ce tutoriel, vous trouverez des informations sur les profils PowerShell et leur utilisation. Stephanos Constantinou Blog
Auteur
Stephanos
Nom de l’éditeur
Stephanos Constantinou Blog
Logo de l’éditeur

.

Laisser un commentaire

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