about_Profiles
Description courte
Décrit comment créer et utiliser un profil PowerShell.
Description longue
Vous pouvez créer un profil PowerShell pour personnaliser votre environnement et ajouter des éléments spécifiques à la session PowerShell que vous démarrez.
Un profil PowerShell est un script qui s’exécute au démarrage de PowerShell. Vous pouvez utiliser le profil comme script de démarrage pour personnaliser votre environnement. Vous pouvez ajouter des commandes, des alias, des fonctions, des variables, des modules, des lecteurs PowerShell, etc. Vous pouvez également ajouter d’autres éléments spécifiques à votre profil afin qu’ils soient disponibles dans chaque session sans avoir à les importer ou à les recréer.
PowerShell prend en charge plusieurs profils pour les utilisateurs et les programmes hôtes. Toutefois, il ne crée pas les profils pour vous.
Types et emplacements de profil
PowerShell prend en charge plusieurs fichiers de profil qui sont étendus aux utilisateurs et aux hôtes PowerShell. Vous pouvez avoir n’importe quel ou tous ces profils sur votre ordinateur.
La console PowerShell prend en charge les fichiers de profil de base suivants. Ces chemins de fichier sont les emplacements par défaut.
- Tous les utilisateurs, tous les hôtes
- Windows -
$PSHOME\Profile.ps1
- Linux –
/opt/microsoft/powershell/7/profile.ps1
- macOS –
/usr/local/microsoft/powershell/7/profile.ps1
- Windows -
- Tous les utilisateurs, hôte actuel
- Windows -
$PSHOME\Microsoft.PowerShell_profile.ps1
- Linux –
/opt/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
- macOS –
/usr/local/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
- Windows -
- Utilisateur actuel, tous les hôtes
- Windows -
$HOME\Documents\PowerShell\Profile.ps1
- Linux –
~/.config/powershell/profile.ps1
- macOS –
~/.config/powershell/profile.ps1
- Windows -
- Utilisateur actuel, hôte actuel
- Windows -
$HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
- Linux –
~/.config/powershell/Microsoft.PowerShell_profile.ps1
- macOS –
~/.config/powershell/Microsoft.PowerShell_profile.ps1
- Windows -
Remarque
Dans Windows, l’emplacement du Documents
dossier peut être modifié par redirection de dossiers ou OneDrive. Nous vous déconseillons de rediriger le Documents
dossier vers un partage réseau ou de l’inclure dans OneDrive. La redirection du dossier peut entraîner l’échec du chargement et la création d’erreurs dans vos scripts de profil.
Pour plus d’informations sur la suppression du Documents
dossier de la gestion OneDrive, consultez la documentation OneDrive.
Les scripts de profil sont exécutés dans l’ordre indiqué. Cela signifie que les modifications apportées dans le profil AllUsersAllHosts peuvent être remplacées par l’un des autres scripts de profil. Le profil CurrentUserCurrentHost s’exécute toujours en dernier. Dans l’aide de PowerShell, le profil CurrentUserCurrentHost est le profil le plus souvent appelé profil PowerShell.
D’autres programmes qui hébergent PowerShell peuvent prendre en charge leurs propres profils. Par exemple, Visual Studio Code (VS Code) prend en charge les profils spécifiques à l’hôte suivants.
- Tous les utilisateurs, hôte actuel -
$PSHOME\Microsoft.VSCode_profile.ps1
- Utilisateur actuel, hôte actuel -
$HOME\Documents\PowerShell\Microsoft.VSCode_profile.ps1
Les chemins de profil incluent les variables suivantes :
- La
$PSHOME
variable stocke le répertoire d’installation pour PowerShell - La
$HOME
variable stocke le répertoire de base de l’utilisateur actuel
Variable $PROFILE
La variable automatique $PROFILE
stocke les chemins des profils PowerShell qui sont disponibles dans la session active.
Pour afficher un chemin d’accès au profil, affichez la valeur de la $PROFILE
variable. Vous pouvez également utiliser la $PROFILE
variable dans une commande pour représenter un chemin d’accès.
La $PROFILE
variable stocke le chemin d’accès au profil « Utilisateur actuel, Hôte actuel ». Les autres profils sont enregistrés dans les propriétés de note de la $PROFILE
variable.
Par exemple, la $PROFILE
variable a les valeurs suivantes dans la console Windows PowerShell.
- Utilisateur actuel, hôte actuel -
$PROFILE
- Utilisateur actuel, hôte actuel -
$PROFILE.CurrentUserCurrentHost
- Utilisateur actuel, tous les hôtes -
$PROFILE.CurrentUserAllHosts
- Tous les utilisateurs, hôte actuel -
$PROFILE.AllUsersCurrentHost
- Tous les utilisateurs, tous les hôtes -
$PROFILE.AllUsersAllHosts
Étant donné que les valeurs de la $PROFILE
variable changent pour chaque utilisateur et dans chaque application hôte, vérifiez que vous affichez les valeurs des variables de profil dans chaque application hôte PowerShell que vous utilisez.
Pour afficher les valeurs actuelles de la $PROFILE
variable, tapez :
$PROFILE | Select-Object *
Vous pouvez utiliser la $PROFILE
variable dans de nombreuses commandes. Par exemple, la commande suivante ouvre le profil « Utilisateur actuel, Hôte actuel » dans le Bloc-notes :
notepad $PROFILE
La commande suivante détermine si un profil « Tous les utilisateurs, tous les hôtes » a été créé sur l’ordinateur local :
Test-Path -Path $PROFILE.AllUsersAllHosts
Création d’un profil
Pour créer un profil PowerShell, utilisez le format de commande suivant :
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 :
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Dans cette commande, l’instruction if
vous empêche de remplacer un profil existant. Remplacez la valeur de la $PROFILE
variable par le chemin d’accès au fichier de profil que vous souhaitez créer.
Remarque
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 .
Comment modifier un profil
Vous pouvez ouvrir n’importe quel profil PowerShell dans un éditeur de texte, tel que le Bloc-notes.
Pour ouvrir le profil de l’utilisateur actuel dans l’application hôte PowerShell actuelle dans le Bloc-notes, tapez :
notepad $PROFILE
Pour ouvrir d’autres profils, spécifiez le nom du profil. Par exemple, pour ouvrir le profil pour tous les utilisateurs de toutes les applications hôtes, tapez :
notepad $PROFILE.AllUsersAllHosts
Pour appliquer les modifications, enregistrez le fichier de profil, puis redémarrez PowerShell.
Comment choisir un profil
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. Placez des éléments spécifiques à une application hôte, comme 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.
Si vous êtes administrateur qui personnalise PowerShell pour de nombreux utilisateurs, suivez ces instructions :
- Stocker les éléments communs dans le
$PROFILE.AllUsersAllHosts
profil - Stocker des éléments spécifiques à une application hôte dans
$PROFILE.AllUsersCurrentHost
des profils spécifiques à l’application hôte - Stocker des éléments pour des utilisateurs particuliers dans les profils spécifiques à l’utilisateur
Veillez à consulter la documentation de l’application hôte pour toute implémentation spéciale des profils PowerShell.
Comment utiliser un profil
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. Lorsque vous terminez la session, les éléments sont supprimés.
Les commandes et éléments spécifiques à la session incluent des variables PowerShell, des variables d’environnement, des alias, des fonctions, des commandes et des modules PowerShell que vous ajoutez à la session.
Pour enregistrer ces éléments et les rendre disponibles dans toutes les sessions futures, ajoutez-les à un profil PowerShell.
Une autre utilisation courante pour les profils consiste à enregistrer des fonctions, des alias et des variables fréquemment utilisés. Lorsque vous enregistrez les éléments dans un profil, vous pouvez les utiliser dans n’importe quelle session applicable sans les recréer.
Guide pratique pour démarrer un profil
Lorsque vous ouvrez le fichier de profil, il est vide. Toutefois, vous pouvez le remplir avec les variables, les alias et les commandes que vous utilisez fréquemment.
Voici quelques suggestions pour vous aider à démarrer.
Ajouter une fonction qui répertorie les alias pour n’importe quelle applet de commande
function Get-CmdletAlias ($cmdletname) {
Get-Alias |
Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
Format-Table -Property Definition, Name -AutoSize
}
Personnaliser votre console
function CustomizeConsole {
$hosttime = (Get-ChildItem -Path $PSHOME\pwsh.exe).CreationTime
$hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)"
$Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)"
Clear-Host
}
CustomizeConsole
Ajouter une invite PowerShell personnalisée
function Prompt {
$env:COMPUTERNAME + "\" + (Get-Location) + "> "
}
Pour plus d’informations sur l’invite PowerShell, consultez about_Prompts.
Pour obtenir d’autres exemples de profil, consultez Personnalisation de votre environnement shell.
Paramètre NoProfile
Pour démarrer PowerShell sans profils, utilisez le paramètre NoProfile de pwsh.exe
, le programme qui démarre PowerShell.
Pour commencer, ouvrez un programme qui peut démarrer PowerShell, tel que Cmd.exe ou PowerShell lui-même. Vous pouvez également utiliser la boîte de dialogue Exécuter dans Windows.
Tapez :
pwsh -NoProfile
Pour obtenir la liste complète des paramètres de pwsh.exe
, tapez :
pwsh -?
Profils et stratégie d’exécution
La stratégie d’exécution PowerShell détermine, en partie, si vous pouvez exécuter des scripts et charger des fichiers de configuration, y compris les profils. La stratégie d’exécution restreinte est la stratégie par défaut. Il empêche l’exécution de tous les scripts, y compris les profils. Si vous utilisez la stratégie « Restreint », le profil ne s’exécute pas et son contenu n’est pas appliqué.
Une Set-ExecutionPolicy
commande définit et modifie votre stratégie d’exécution. il s’agit de l’une des rares commandes qui s’applique dans toutes les sessions PowerShell, car la valeur est enregistrée dans le Registre. Vous n’avez pas besoin de le définir lorsque vous ouvrez la console et que vous n’avez pas besoin de stocker une Set-ExecutionPolicy
commande dans votre profil.
Profils et sessions distantes
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. En outre, la $PROFILE
variable automatique n’est pas remplie dans les sessions à distance.
Pour exécuter un profil dans une session, utilisez l’applet de commande Invoke-Command .
Par exemple, la commande suivante exécute le profil « Utilisateur actuel, Hôte actuel » à partir de l’ordinateur local dans la session dans $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
. Étant donné que la $PROFILE
variable n’est pas remplie, la commande utilise le chemin explicite du profil. Nous utilisons l’opérateur d’approvisionnement par points afin que le profil s’exécute dans l’étendue actuelle sur l’ordinateur distant et non dans sa propre étendue.
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
.