Est-il possible d'exécuter un script Powershell lorsque vous lancez Powershell? C'est-à-dire, double-cliquez sur l'icône Powershell et ouvrez la fenêtre. Y a-t-il un type de paramètre "auto-run" quelque part?
Réponses
Trop de publicités?Il y a un script PowerShell qui s'exécute au démarrage de PowerShell, s'il existe. Le filespec pour ce script est dans la variable $profile
.
Vous pouvez utiliser des commandes PowerShell pour vérifier si ce fichier de script existe, le créer s'il n'existe pas et le modifier avec le bloc-notes. Voici le guide pratique.
Notez que dans les versions récentes (~2020 et ultérieures), PowerShell ne lancera plus les scripts non signés (même pas $profile
!) par défaut. Si vous suivez simplement les anciennes instructions telles que celles du guide pratique, lorsque vous ouvrez un nouveau PowerShell, vous verrez un message d'erreur comme celui-ci :
. : Le fichier C:\[..]\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 ne peut pas être chargé
parce que l'exécution des scripts est désactivée sur ce système. Pour plus d'informations,
consultez about_Execution_Policies à
https:/go.microsoft.com/fwlink/?LinkID=135170.
Signer votre profil une fois - encore moins à chaque fois que vous le modifiez - n'est probablement pas réaliste, vous devez donc modifier la politique d'exécution pour le permettre.
Pour ce faire, vous pouvez soit :
-
Exécuter la commande suivante en tant qu'administrateur :
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
-
ou utiliser RegEdit pour modifier
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
, en ajoutant une nouvelle REG_SZ avec le nomExecutionPolicy
et la valeurRemoteSigned
.
Les deux ont exactement le même effet et persisteront à travers les sessions.
La politique RemoteSigned
exige que les scripts téléchargés depuis un autre endroit soient signés, mais les scripts que vous créez localement sur votre machine (comme $profile
) peuvent s'exécuter sans signature. (Vous pourriez également définir la politique sur Unrestricted
pour permettre également l'exécution de scripts téléchargés non signés, mais ce n'est pas une pratique de sécurité recommandée.)
Tapez la commande suivante :
New-item –type file –force $profile
Un fichier Microsoft.PowerShell_profile.ps1
sera créé dans C:\Users\\Documents\WindowsPowerShell\
pour PowerShell 5 et versions antérieures ou C:\Users\\Documents\PowerShell\
pour PowerShell 6 Core (ce dossier sera créé automatiquement).
Ensuite, modifiez ce fichier et vous pouvez ajouter des fonctions PowerShell personnalisées ou charger des modules ou des snap-ins...
Maintenant, lorsque vous lancez votre console PowerShell, Microsoft.PowerShell_profile.ps1
sera activé.
Il existe de nombreuses façons de faire cela. Une méthode simple consiste à créer un script de profil dans votre chemin d'accès de base de PowerShell par défaut.
- Naviguez vers
$env:UserProfile\Documents\WindowsPowerShell
.
En général, cela se développe enC:\Users\\Documents\WindowsPowerShell
.
Créez les dossiers s'ils n'existent pas. - Créez un fichier nommé
profile.ps1
. Vous pouvez écrire votre script dans ce fichier, et ce fichier sera exécuté à chaque fois que vous démarrez PowerShell en tant qu'utilisateur. Si vous avez le script ailleurs, vous pouvez appeler ces scripts depuisprofile.ps1
.
À noter, le nom de profil par défaut devrait être Microsoft.PowerShell_profile.ps1
.
Mais profile.ps1
fonctionne également.