À propos des profilsAbout Profiles

Description courteShort Description

Décrit comment créer et utiliser un profil PowerShell.Describes how to create and use a PowerShell profile.

Description longueLong Description

Vous pouvez créer un profil PowerShell pour personnaliser votre environnement et ajouter des éléments spécifiques à la session à chaque session PowerShell que vous démarrez.You can create a PowerShell profile to customize your environment and to add session-specific elements to every PowerShell session that you start.

Un profil PowerShell est un script qui s’exécute au démarrage de PowerShell.A PowerShell profile is a script that runs when PowerShell starts. Vous pouvez utiliser le profil comme script d’ouverture de session pour personnaliser l’environnement.You can use the profile as a logon script to customize the environment. Vous pouvez ajouter des commandes, des alias, des fonctions, des variables, des composants logiciels enfichables, des modules et des lecteurs PowerShell.You can add commands, aliases, functions, variables, snap-ins, modules, and PowerShell drives. Vous pouvez également ajouter d’autres éléments spécifiques à la session à votre profil afin qu’ils soient disponibles dans chaque session sans avoir à les importer ou à les recréer.You can also add other session-specific elements to your profile so they are available in every session without having to import or re-create them.

PowerShell prend en charge plusieurs profils pour les utilisateurs et les programmes hôtes.PowerShell supports several profiles for users and host programs. Toutefois, il ne crée pas les profils pour vous.However, it does not create the profiles for you. Cette rubrique décrit les profils et décrit comment créer et gérer des profils sur votre ordinateur.This topic describes the profiles, and it describes how to create and maintain profiles on your computer.

Il explique comment utiliser le paramètre noprofile de la console powershell (PowerShell.exe) pour démarrer PowerShell sans aucun profil.It explains how to use the NoProfile parameter of the PowerShell console (PowerShell.exe) to start PowerShell without any profiles. Et explique l’effet de la stratégie d’exécution de PowerShell sur les profils.And, it explains the effect of the PowerShell execution policy on profiles.

Fichiers de profilThe Profile Files

PowerShell prend en charge plusieurs fichiers de profil.PowerShell supports several profile files. En outre, les programmes hôtes PowerShell peuvent prendre en charge leurs propres profils propres à l’hôte.Also, PowerShell host programs can support their own host-specific profiles.

Par exemple, la console PowerShell prend en charge les fichiers de profil de base suivants.For example, the PowerShell console supports the following basic profile files. Les profils sont répertoriés par ordre de priorité.The profiles are listed in precedence order. Le premier profil a la priorité la plus élevée.The first profile has the highest precedence.

DescriptionDescription PathPath
Tous les utilisateurs, tous les ordinateurs hôtesAll Users, All Hosts $PSHOME \Profile.ps1$PSHOME\Profile.ps1
Tous les utilisateurs, hôte actuelAll Users, Current Host $PSHOME \Microsoft.PowerShell_profile.ps1$PSHOME\Microsoft.PowerShell_profile.ps1
Utilisateur actuel, tous les ordinateurs hôtesCurrent User, All Hosts $Home \ [My] Documents \ \Profile.ps1 PowerShell$Home\[My ]Documents\PowerShell\Profile.ps1
Utilisateur actuel, hôte actuelCurrent user, Current Host $Home \ [My] documents \ PowerShell$Home\[My ]Documents\PowerShell\
Microsoft.PowerShell_profile.ps1Microsoft.PowerShell_profile.ps1

Les chemins d’accès aux profils incluent les variables suivantes :The profile paths include the following variables:

  • La $PSHOME variable, qui stocke le répertoire d’installation de PowerShellThe $PSHOME variable, which stores the installation directory for PowerShell
  • La $Home variable, qui stocke le répertoire de démarrage de l’utilisateur actuelThe $Home variable, which stores the current user's home directory

En outre, d’autres programmes qui hébergent PowerShell peuvent prendre en charge leurs propres profils.In addition, other programs that host PowerShell can support their own profiles. Par exemple, Visual Studio Code prend en charge les profils spécifiques à l’hôte suivants.For example, Visual Studio Code supports the following host-specific profiles.

DescriptionDescription PathPath
Tous les utilisateurs, hôte actuelAll users, Current Host $PSHOME \Microsoft.VSCode_profile.ps1$PSHOME\Microsoft.VSCode_profile.ps1
Utilisateur actuel, hôte actuelCurrent user, Current Host $Home \ [My] documents \ PowerShell$Home\[My ]Documents\PowerShell\
Microsoft.VSCode_profile.ps1Microsoft.VSCode_profile.ps1

Dans l’aide PowerShell, le profil « CurrentUser, hôte actuel » est le profil le plus souvent appelé « votre profil PowerShell ».In PowerShell Help, the "CurrentUser, Current Host" profile is the profile most often referred to as "your PowerShell profile".

La variable $PROFILEThe $PROFILE variable

La $PROFILE variable automatique stocke les chemins d’accès aux profils PowerShell qui sont disponibles dans la session active.The $PROFILE automatic variable stores the paths to the PowerShell profiles that are available in the current session.

Pour afficher un chemin de profil, affichez la valeur de la $PROFILE variable.To view a profile path, display the value of the $PROFILE variable. Vous pouvez également utiliser la $PROFILE variable dans une commande pour représenter un chemin d’accès.You can also use the $PROFILE variable in a command to represent a path.

La $PROFILE variable stocke le chemin d’accès au profil « utilisateur actuel, hôte actuel ».The $PROFILE variable stores the path to the "Current User, Current Host" profile. Les autres profils sont enregistrés dans les propriétés de note de la $PROFILE variable.The other profiles are saved in note properties of the $PROFILE variable.

Par exemple, la $PROFILE variable a les valeurs suivantes dans la console Windows PowerShell.For example, the $PROFILE variable has the following values in the Windows PowerShell console.

DescriptionDescription NomName
Utilisateur actuel, hôte actuelCurrent User, Current Host $PROFILE
Utilisateur actuel, hôte actuelCurrent User, Current Host $PROFILE.CurrentUserCurrentHost
Utilisateur actuel, tous les ordinateurs hôtesCurrent User, All Hosts $PROFILE.CurrentUserAllHosts
Tous les utilisateurs, hôte actuelAll Users, Current Host $PROFILE.AllUsersCurrentHost
Tous les utilisateurs, tous les ordinateurs hôtesAll Users, All Hosts $PROFILE.AllUsersAllHosts

Étant donné que les valeurs de la $PROFILE variable changent pour chaque utilisateur et dans chaque application hôte, assurez-vous d’afficher les valeurs des variables de profil dans chaque application hôte PowerShell que vous utilisez.Because the values of the $PROFILE variable change for each user and in each host application, ensure that you display the values of the profile variables in each PowerShell host application that you use.

Pour afficher les valeurs actuelles de la $PROFILE variable, tapez :To see the current values of the $PROFILE variable, type:

$PROFILE | Get-Member -Type NoteProperty

Vous pouvez utiliser la $PROFILE variable dans de nombreuses commandes.You can use the $PROFILE variable in many commands. Par exemple, la commande suivante ouvre le profil « utilisateur actuel, hôte actuel » dans le bloc-notes :For example, the following command opens the "Current User, Current Host" profile in Notepad:

notepad $PROFILE

La commande suivante détermine si un profil « tous les utilisateurs, tous les ordinateurs hôtes » a été créé sur l’ordinateur local :The following command determines whether an "All Users, All Hosts" profile has been created on the local computer:

Test-Path -Path $PROFILE.AllUsersAllHosts

Comment créer un profilHow to create a profile

Pour créer un profil PowerShell, utilisez le format de commande suivant :To create a PowerShell profile, use the following command format:

if (!(Test-Path -Path <profile-name>)) {
  New-Item -ItemType File -Path <profile-name> -Force
}

Par exemple, pour créer un profil pour l’utilisateur actuel dans l’application hôte PowerShell actuelle, utilisez la commande suivante :For example, to create a profile for the current user in the current PowerShell host application, use the following command:

if (!(Test-Path -Path $PROFILE)) {
  New-Item -ItemType File -Path $PROFILE -Force
}

Dans cette commande, l' If instruction vous empêche de remplacer un profil existant.In this command, the If statement prevents you from overwriting an existing profile. Remplacez la valeur de l' <profile-path> espace réservé par le chemin d’accès au fichier de profil que vous souhaitez créer.Replace the value of the <profile-path> placeholder with the path to the profile file that you want to create.

Notes

Pour créer des profils « tous les utilisateurs » dans Windows Vista et les versions ultérieures de Windows, démarrez PowerShell avec l’option exécuter en tant qu’administrateur .To create "All Users" profiles in Windows Vista and later versions of Windows, start PowerShell with the Run as administrator option.

Comment modifier un profilHow to edit a profile

Vous pouvez ouvrir n’importe quel profil PowerShell dans un éditeur de texte, tel que le bloc-notes.You can open any PowerShell profile in a text editor, such as Notepad.

Pour ouvrir le profil de l’utilisateur actuel dans l’application hôte PowerShell actuelle dans le bloc-notes, tapez :To open the profile of the current user in the current PowerShell host application in Notepad, type:

notepad $PROFILE

Pour ouvrir d’autres profils, spécifiez le nom du profil.To open other profiles, specify the profile name. Par exemple, pour ouvrir le profil pour tous les utilisateurs de toutes les applications hôtes, tapez :For example, to open the profile for all the users of all the host applications, type:

notepad $PROFILE.AllUsersAllHosts

Pour appliquer les modifications, enregistrez le fichier de profil, puis redémarrez PowerShell.To apply the changes, save the profile file, and then restart PowerShell.

Comment choisir un profilHow to choose a profile

Si vous utilisez plusieurs applications hôtes, placez les éléments que vous utilisez dans toutes les applications hôtes dans votre $PROFILE.CurrentUserAllHosts profil.If you use multiple host applications, put the items that you use in all the host applications into your $PROFILE.CurrentUserAllHosts profile. Placez les éléments spécifiques à une application hôte, par exemple une commande qui définit la couleur d’arrière-plan d’une application hôte, dans un profil spécifique à cette application hôte.Put items that are specific to a host application, such as a command that sets the background color for a host application, in a profile that is specific to that host application.

Si vous êtes un administrateur qui personnalise PowerShell pour de nombreux utilisateurs, suivez ces instructions :If you are an administrator who is customizing PowerShell for many users, follow these guidelines:

  • Stocker les éléments communs dans le $PROFILE.AllUsersAllHosts profilStore the common items in the $PROFILE.AllUsersAllHosts profile
  • Stocker des éléments spécifiques à une application hôte dans des $PROFILE.AllUsersCurrentHost profils spécifiques à l’application hôteStore items that are specific to a host application in $PROFILE.AllUsersCurrentHost profiles that are specific to the host application
  • Stocker des éléments pour des utilisateurs particuliers dans les profils spécifiques à l’utilisateurStore items for particular users in the user-specific profiles

Veillez à consulter la documentation de l’application hôte pour connaître toute implémentation spéciale des profils PowerShell.Be sure to check the host application documentation for any special implementation of PowerShell profiles.

Comment utiliser un profilHow to use a profile

La plupart des éléments que vous créez dans PowerShell et la plupart des commandes que vous exécutez affectent uniquement la session active.Many of the items that you create in PowerShell and most commands that you run affect only the current session. Lorsque vous terminez la session, les éléments sont supprimés.When you end the session, the items are deleted.

Les commandes et éléments spécifiques à la session incluent les variables, les variables de préférence, les alias, les fonctions, les commandes (à l’exception de Set-ExecutionPolicy) et les modules PowerShell que vous ajoutez à la session.The session-specific commands and items include variables, preference variables, aliases, functions, commands (except for Set-ExecutionPolicy), and PowerShell modules that you add to the session.

Pour enregistrer ces éléments et les rendre disponibles dans toutes les sessions ultérieures, ajoutez-les à un profil PowerShell.To save these items and make them available in all future sessions, add them to a PowerShell profile.

Une autre utilisation courante des profils consiste à enregistrer les fonctions, alias et variables fréquemment utilisés.Another common use for profiles is to save frequently-used functions, aliases, and variables. Lorsque vous enregistrez les éléments dans un profil, vous pouvez les utiliser dans n’importe quelle session applicable sans les recréer.When you save the items in a profile, you can use them in any applicable session without recreating them.

Comment démarrer un profilHow to start a profile

Lorsque vous ouvrez le fichier de profil, il est vide.When you open the profile file, it is blank. Toutefois, vous pouvez le remplir avec les variables, les alias et les commandes que vous utilisez fréquemment.However, you can fill it with the variables, aliases, and commands that you use frequently.

Voici quelques suggestions pour vous aider à démarrer.Here are a few suggestions to get you started.

Ajoutez des commandes qui facilitent l’ouverture de votre profilAdd commands that make it easy to open your profile

Cela s’avère particulièrement utile si vous utilisez un profil autre que le profil « utilisateur actuel, hôte actuel ».This is especially useful if you use a profile other than the "Current User, Current Host" profile. Par exemple, ajoutez la commande suivante :For example, add the following command:

function Pro {notepad $PROFILE.CurrentUserAllHosts}

Ajouter une fonction qui répertorie les alias de toute applet de commandeAdd a function that lists the aliases for any cmdlet

function Get-CmdletAlias ($cmdletname) {
  Get-Alias |
    Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
      Format-Table -Property Definition, Name -AutoSize
}

Personnaliser votre consoleCustomize your console

function Color-Console {
  $Host.ui.rawui.backgroundcolor = "white"
  $Host.ui.rawui.foregroundcolor = "black"
  $hosttime = (Get-ChildItem -Path $PSHOME\PowerShell.exe).CreationTime
  $hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)"
  $Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)"
  Clear-Host
}
Color-Console

Ajouter une invite PowerShell personnaliséeAdd a customized PowerShell prompt

function Prompt
{
$env:COMPUTERNAME + "\" + (Get-Location) + "> "
}

Pour plus d’informations sur l’invite de PowerShell, consultez about_Prompts.For more information about the PowerShell prompt, see about_Prompts.

Paramètre noprofileThe NoProfile parameter

Pour démarrer PowerShell sans profils, utilisez le paramètre noprofile de PowerShell.exe , le programme qui démarre PowerShell.To start PowerShell without profiles, use the NoProfile parameter of PowerShell.exe , the program that starts PowerShell.

Pour commencer, ouvrez un programme capable de Démarrer PowerShell, tel que Cmd.exe ou PowerShell lui-même.To begin, open a program that can start PowerShell, such as Cmd.exe or PowerShell itself. Vous pouvez également utiliser la boîte de dialogue Exécuter dans Windows.You can also use the Run dialog box in Windows.

Tapez :Type:

PowerShell -NoProfile

Pour obtenir la liste complète des paramètres de PowerShell.exe, tapez :For a complete list of the parameters of PowerShell.exe, type:

PowerShell -?

Profils et stratégie d’exécutionProfiles and Execution Policy

La stratégie d’exécution de PowerShell détermine, en partie, si vous pouvez exécuter des scripts et charger des fichiers de configuration, y compris les profils.The PowerShell execution policy determines, in part, whether you can run scripts and load configuration files, including the profiles. La stratégie d’exécution restreinte est la stratégie par défaut.The Restricted execution policy is the default. Il empêche l’exécution de tous les scripts, y compris les profils.It prevents all scripts from running, including the profiles. Si vous utilisez la stratégie « Restricted », le profil ne s’exécute pas et son contenu n’est pas appliqué.If you use the "Restricted" policy, the profile does not run, and its contents are not applied.

Une Set-ExecutionPolicy commande définit et modifie votre stratégie d’exécution.A Set-ExecutionPolicy command sets and changes your execution policy. Il s’agit de l’une des quelques commandes qui s’appliquent à toutes les sessions PowerShell, car la valeur est enregistrée dans le registre.It is one of the few commands that applies in all PowerShell sessions because the value is saved in the registry. Vous n’avez pas besoin de la définir lorsque vous ouvrez la console, et vous n’avez pas besoin de stocker une Set-ExecutionPolicy commande dans votre profil.You do not have to set it when you open the console, and you do not have to store a Set-ExecutionPolicy command in your profile.

Profils et sessions à distanceProfiles and remote sessions

Les profils PowerShell ne sont pas exécutés automatiquement dans les sessions à distance. par conséquent, les commandes ajoutées par les profils ne sont pas présentes dans la session à distance.PowerShell profiles are not run automatically in remote sessions, so the commands that the profiles add are not present in the remote session. En outre, la $PROFILE variable automatique n’est pas remplie dans les sessions à distance.In addition, the $PROFILE automatic variable is not populated in remote sessions.

Pour exécuter un profil dans une session, utilisez l’applet de commande Invoke-Command .To run a profile in a session, use the Invoke-Command cmdlet.

Par exemple, la commande suivante exécute le profil « utilisateur actuel, hôte actuel » à partir de l’ordinateur local dans la session dans $s .For example, the following command runs the "Current user, Current Host" profile from the local computer in the session in $s.

Invoke-Command -Session $s -FilePath $PROFILE

La commande suivante exécute le profil « utilisateur actuel, hôte actuel » à partir de l’ordinateur distant dans la session dans $s .The following command runs the "Current user, Current Host" profile from the remote computer in the session in $s. Étant donné que la $PROFILE variable n’est pas remplie, la commande utilise le chemin d’accès explicite au profil.Because the $PROFILE variable is not populated, the command uses the explicit path to the profile. Nous utilisons un opérateur d’approvisionnement en points pour que le profil s’exécute dans l’étendue actuelle sur l’ordinateur distant et non dans sa propre étendue.We use dot sourcing operator so that the profile executes in the current scope on the remote computer and not in its own scope.

Invoke-Command -Session $s -ScriptBlock {
  . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"
}

Après l’exécution de cette commande, les commandes ajoutées par le profil à la session sont disponibles dans $s .After running this command, the commands that the profile adds to the session are available in $s.

Voir aussiSee Also

about_Automatic_Variablesabout_Automatic_Variables

about_Functionsabout_Functions

about_Promptsabout_Prompts

about_Execution_Policiesabout_Execution_Policies

about_Signingabout_Signing

about_Remoteabout_Remote

about_Scopesabout_Scopes

Set-ExecutionPolicySet-ExecutionPolicy