• 30/11/2017
  • 7 minutes de lecture
    • S
    • . s
    • x
    • q

Description succincte

Décrit comment créer et utiliser un profil PowerShell.

Déscription longue

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.

Un profil PowerShell est un script qui s’exécute au démarrage de PowerShell. Vous pouvez utiliser le profil comme script de connexion pour personnaliser l’environnement. Vous pouvez ajouter descommandes, des alias, des fonctions, des variables, des snap-ins, des modules et des PowerShelldrives. 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.

PowerShell prend en charge plusieurs profils pour les utilisateurs et les programmes hôtes. Cependant, il ne crée pas les profils pour vous. Cette rubrique décrit les profils, et elle explique comment créer et maintenir des profils sur votre ordinateur.

Elle explique comment utiliser le paramètre NoProfile de la console PowerShell(PowerShell.exe) pour démarrer PowerShell sans aucun profil. Et, il expliquel’effet de la politique d’exécution de PowerShell sur les profils.

Les fichiers de profil

PowerShell prend en charge plusieurs fichiers de profil. En outre, les programmes hôtes PowerShell peuvent prendre en charge leurs propres profils spécifiques à l’hôte.

Par exemple, la console PowerShell prend en charge les fichiers de profil de base suivants. Les profils sont répertoriés par ordre de préséance. Le premierprofil a la plus haute priorité.

Description Path
Tous les utilisateurs, tous les hôtes $PSHOME\Profile.ps1
Tous les utilisateurs, hôte actuel $PSHOME\Microsoft.PowerShell_profile.ps1
Utilisateur actuel, tous les hôtes $Home\Documents\PowerShell\Profile.ps1
Utilisateur actuel, Hôte actuel $Home\Documents\PowerShell\
Microsoft.PowerShell_profile.ps1

Les chemins du profil comprennent les variables suivantes :

  • La variable $PSHOME, qui stocke le répertoire d’installation dePowerShell
  • La variable $Home, qui stocke le répertoire d’origine de l’utilisateur actuel

En outre, d’autres programmes qui hébergent PowerShell peuvent prendre en charge leurs propresprofils. Par exemple, Visual Studio Code prend en charge les profils spécifiques à l’hôte suivants.

Description Path
Tous les utilisateurs, hôte actuel $PSHOME\Microsoft.VSCode_profile.ps1
Utilisateur actuel, Hôte actuel $Home\Documents\PowerShell
Microsoft.VSCode_profile.ps1

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

La variable $PROFILE

La variable automatique $PROFILE stocke les chemins d’accès aux profils PowerShell disponibles dans la session actuelle.

Pour visualiser un chemin d’accès à un profil, affichez la valeur de la variable $PROFILE. Vous pouvez également utiliser la variable $PROFILE dans une commande pour représenter un chemin d’accès.

La variable $PROFILE 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 variable $PROFILE.

Par exemple, la variable $PROFILE a les valeurs suivantes dans la console WindowsPowerShell.

Description Nom
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

Comme les valeurs de la variable $PROFILE 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.

Pour afficher les valeurs actuelles de la variable $PROFILE, tapez :

$PROFILE | Get-Member -Type NoteProperty

Vous pouvez utiliser la variable $PROFILE 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

Comment créer 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 d’écraser un profil existant. Remplacez la valeur de l’espace réservé <profile-path> par le chemin d’accès au fichier de profil que vous souhaitez créer.

Note

Pour créer des profils « Tous les utilisateurs » dans Windows Vista et les versions ultérieures deWindows, 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 Notepad.

Pour ouvrir le profil de l’utilisateur actuel dans l’application hôte PowerShell actuelle dans Notepad, tapez :

notepad $PROFILE

Pour ouvrir d’autres profils, spécifiez le nom du profil. Par exemple, pour ouvrir leprofil de 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, mettez les éléments que vous utilisez dans toutes les applications hôtes dans votre profil $PROFILE.CurrentUserAllHosts. 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 qui sont 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 implémentation spéciale des profils PowerShell.

Comment utiliser un profil

Plusieurs des éléments que vous créez dans PowerShell et la plupart des commandes que vous exécutez affectent uniquement la session en cours. Lorsque vous terminez la session, les éléments sont supprimés.

Les commandes et les éléments spécifiques à la session incluent les variables, les variables de préférence, les alias, les fonctions, les commandes (à l’exception deSet-ExecutionPolicy),et les 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 des profils consiste à enregistrer les fonctions, les alias et les variables fréquemment utilisés. Lorsque vous enregistrez les éléments dans un profil, vous pouvez les utiliser dans toute session applicable sans les recréer.

Comment démarrer un profil

Lorsque vous ouvrez le fichier de profil, il est vide. Cependant, 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 des commandes qui facilitent l’ouverture de votre profil

Ceci est particulièrement utile si vous utilisez un profil autre que le profil « Utilisateur actuel, hôte actuel ». Par exemple, ajoutez la commande suivante :

function Pro {notepad $PROFILE.CurrentUserAllHosts}

Ajouter une fonction qui liste les alias de n’importe quelle cmdlet

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

Personnaliser votre 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ée

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

Pour plus d’informations sur l’invite PowerShell, consultez la sectionabout_Prompts.

Le paramètre NoProfile

Pour démarrer PowerShell sans profils, utilisez le paramètre NoProfile dePowerShell.exe, le programme qui démarre PowerShell.

Pour commencer, ouvrez un programme qui peut démarrer PowerShell, tel que Cmd.exe ouPowerShell lui-même. Vous pouvez également utiliser la boîte de dialogue Exécuter de Windows.

Type:

PowerShell -NoProfile

Pour une liste complète des paramètres de PowerShell.exe, tapez:

PowerShell -?

Profils et politique d’exécution

La politique 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. La politique d’exécution restreinte est la politique par défaut. Elle empêche l’exécution de tous les scripts, y compris les profils. Si vous utilisez la politique « Restreint », le profil ne s’exécute pas et son contenu n’est pas appliqué.

Une commande Set-ExecutionPolicy définit et modifie votre politique d’exécution. C’est 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 la définir lorsque vous ouvrez laconsole, et vous n’avez pas besoin de stocker une commande Set-ExecutionPolicy dans votreprofil.

Profils et sessions distantes

Les profils PowerShell ne sont pas exécutés automatiquement dans les sessions distantes, donc lescommandes 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 le Invoke-Commandcmdlet.

Par exemple, la commande suivante exécute le profil « Current user, Current Host « à partir de l’ordinateur local dans la session en $s.

Invoke-Command -Session $s -FilePath $PROFILE

La commande suivante exécute le profil « Current user, Current Host « à partir de l’ordinateur distant dans la session en $s. Comme la variable $PROFILE n’est pas renseignée, la commande utilise le chemin d’accès explicite au profil. Nous utilisons l’opérateur dotsourcing pour que le profil s’exécute dans la portée actuelle sur l’ordinateur theremote et non dans sa propre portée.

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

Après avoir exécuté cette commande, les commandes que le profil ajoute à la session sont disponibles dans $s.

Voir aussi

concernant les variables automatiques

concernant les fonctions

concernant les invites

concernant les politiques d’exécution

concernant la signature

concernant la télétransmission

concernant les champs d’application

concernant la politique d’exécution

.

Laisser un commentaire

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