De nombreux experts informatiques utilisent les fichiers PS1 de Windows pour automatiser des tâches, configurer des systèmes ou gérer des workflows sous Windows 10. Leur exécution passe toutefois par une procédure fastidieuse : il faut ouvrir PowerShell manuellement. Une bonne façon de simplifier les choses consiste à ajouter une option « Exécuter le fichier PS1 » au menu contextuel, afin de lancer les scripts directement depuis l’Explorateur de fichiers et de gagner du temps.
Cet ajustement permet d’effectuer facilement la maintenance du système, des automatisations en masse ou le dépannage de problèmes urgents. Les spécialistes de la cybersécurité peuvent par exemple déployer rapidement des correctifs de sécurité, et les administrateurs système automatiser la récupération de disques chiffrés. Dans ce guide pas à pas, nous vous montrons une manière plus rapide et plus intuitive d’utiliser cet outil.
Comment ajouter « Exécuter le fichier PS1 » au menu contextuel
Ajouter une option « Exécuter le fichier PS1 » à votre menu contextuel Windows vous permet d’accéder à vos scripts PowerShell en quelques secondes. Voici deux méthodes pour y parvenir :
Méthode 1 : l’Éditeur du registre (méthode manuelle)
- Ouvrez la boîte de dialogue Exécuter (Win + R), puis saisissez regedit pour ouvrir l’Éditeur du registre.
- Rendez-vous à l’emplacement suivant : HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell.
- Faites un clic droit sur le dossier Shell et sélectionnez Nouveau, puis Clé.
- Nommez la nouvelle clé Run with PowerShell.
- Créez une sous-clé command en dessous.
- Définissez la valeur de la sous-clé comme suit :
“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -File "%1”
- Les politiques d’exécution seront ainsi contournées pour que les scripts s’exécutent sans accroc.
- Fermez le registre pour appliquer les modifications.
- L’option Run with PowerShell apparaîtra alors lors d’un clic droit sur les fichiers .ps1.
Méthode 2 : un fichier de registre prêt à l’emploi (méthode plus simple)
- Ouvrez le Bloc-notes, puis collez ce code :
- Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Run with PowerShell]
"Icon"="powershell.exe"
[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Run with PowerShell\command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -NoProfile -ExecutionPolicy Bypass -Command \"& '%1'\""
- Enregistrez le fichier sous le nom Add_Run_PS1_Context_Menu.reg.
- Double-cliquez sur le fichier .reg enregistré et confirmez les modifications.
- L’option Run with PowerShell apparaîtra alors lors d’un clic droit sur les fichiers .ps1.
Comment modifier ou supprimer l’entrée « Exécuter le fichier PS1 » du menu contextuel
Lorsque vous devez supprimer cette fonction ou l’ajuster, modifier le menu contextuel est assez simple. Voici la procédure à suivre :
Modifier la commande « Run with PowerShell »
- Ouvrez l’Éditeur du registre (Win + R, puis saisissez regedit), puis rendez-vous à la clé créée précédemment (voir la méthode 1 ci-dessus).
- Double-cliquez sur la valeur (Par défaut) pour la modifier :
- Pour exécuter des scripts avec une politique d’exécution spécifique, remplacez -ExecutionPolicy Bypass par -ExecutionPolicy RemoteSigned.
- Pour exécuter les scripts en tant qu’administrateur, ajoutez -Verb RunAs à la commande.
- Fermez le registre pour appliquer immédiatement les modifications.
Supprimer l’entrée du menu contextuel
- Ouvrez l’Éditeur du registre, puis rendez-vous à l’emplacement suivant : HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Run with PowerShell
- Faites un clic droit sur Run with PowerShell, puis sélectionnez Supprimer.
- Redémarrez l’Explorateur Windows depuis le Gestionnaire des tâches pour appliquer les modifications.
Autres méthodes pour exécuter des scripts PowerShell
Un menu contextuel rend l’exécution des scripts plus pratique, mais d’autres méthodes offrent davantage de souplesse selon les workflows. Voici d’autres façons d’exécuter PowerShell :
PowerShell avec les privilèges administrateur
Cette méthode est idéale pour les scripts qui nécessitent des droits élevés. Elle suppose d’ouvrir PowerShell avec les privilèges administrateur.
- Faites un clic droit sur le menu Démarrer, puis sélectionnez Windows PowerShell (Admin).
- Dans le répertoire du script, rendez-vous à :
cd "C:\Path\To\Script" - Exécutez le script suivant : .\YourScript.ps1
- Si le script est bloqué par les politiques d’exécution, utilisez plutôt ceci : Set-ExecutionPolicy RemoteSigned -Scope Process -Force
Le Planificateur de tâches pour exécuter des scripts automatiquement
Cet outil permet de planifier dans des scripts des tâches telles que les sauvegardes, le nettoyage des journaux ou la maintenance nocturne.
- Ouvrez le Planificateur de tâches (recherchez taskschd.msc), puis cliquez sur Créer une tâche.
- Dans l’onglet Général :
- nommez la tâche.
- Cochez Exécuter avec les autorisations maximales.
- Dans l’onglet Déclencheurs, définissez une planification pour la tâche.
- Dans l’onglet Actions :
- définissez Action sur Démarrer un programme.
- Pour Programme ou script, saisissez : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
- Pour Arguments, ajoutez :
-WindowStyle Hidden -ExecutionPolicy Bypass -File "C:\Scripts\Backup.ps1"
Créer un raccourci sur le bureau pour le script PS1
Cette méthode convient bien aux scripts fréquemment utilisés : elle offre un accès rapide en un clic.
- Faites un clic droit sur le bureau, sélectionnez Nouveau, puis Raccourci.
- Comme cible, saisissez :
powershell.exe -ExecutionPolicy Bypass -Command "& 'C:\Scripts\YourScript.ps1'"
- Nommez le raccourci.
- Pour l’exécuter en tant qu’administrateur :
- faites un clic droit sur le raccourci, puis sélectionnez Propriétés.
- Allez dans Avancé, puis cochez Exécuter en tant qu’administrateur.
Résolution des problèmes courants
Même en configurant vos scripts PowerShell avec soin, vous pouvez rencontrer quelques accrocs. Voici des solutions aux problèmes les plus fréquents.
Problème : le script PowerShell ne s’exécute pas après son ajout au menu contextuel
- Lancez PowerShell (Win + R, puis saisissez powershell).
- Exécutez le script : Get-ExecutionPolicy
- Si le script est Restricted, contournez temporairement la restriction pour vos tests avec : powershell.exe -ExecutionPolicy Bypass -File « your_script.ps1 »
- Vérifiez que la valeur de la clé de registre command (sous HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Run with PowerShell) contient bien le chemin complet vers powershell.exe ainsi que l’argument -File « %1 ».
- Créez un script de base, par exemple Write-Output “Hello World”, afin d’écarter d’éventuelles erreurs de syntaxe dans le fichier d’origine.
Problème : « L’exécution de scripts est désactivée sur ce système »
- Ouvrez PowerShell en tant qu’administrateur (voir les autres méthodes ci-dessus).
- Exécutez le script : Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
- La politique d’exécution sera ainsi ajustée pour autoriser les scripts.
Problème : l’option du menu contextuel n’apparaît pas
- Actualisez l’Explorateur Windows :
- ouvrez le Gestionnaire des tâches (Ctrl + Maj + Échap).
- Faites un clic droit sur Explorateur Windows, puis sélectionnez Redémarrer.
- Vérifiez les modifications du registre :
- contrôlez à nouveau le chemin de la clé : HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Run with PowerShell.
- Si le chemin est absent, appliquez de nouveau le fichier .reg (voir la méthode 2).
- Vérifiez les interférences de l’antivirus ou du pare-feu :
- ouvrez votre logiciel de sécurité.
- Désactivez temporairement le blocage des modifications du registre, puis ajoutez à nouveau l’entrée de menu.
Bonnes pratiques de gestion des scripts PowerShell
Une mauvaise gestion des scripts PowerShell peut exposer les systèmes à des risques. Appliquez ces bonnes pratiques pour optimiser l’efficacité et la sécurité de cet outil puissant :
Relisez toujours les scripts avant de les exécuter
Des scripts mal écrits peuvent compromettre vos systèmes ou vos données. Vous pouvez l’éviter en :
- Signant votre code : signez les scripts avec un certificat de confiance pour vérifier leur authenticité, par exemple
Set-AuthenticodeSignature -FilePath "script.ps1" -Certificate$cert. - Tirant parti des outils : des outils de gestion des terminaux comme NinjaOne facilitent le déploiement des scripts et vous alertent lorsque certaines conditions sont remplies.
Utilisez les politiques d’exécution de façon stratégique
Les politiques d’exécution évitent les exécutions accidentelles de scripts, mais elles ne constituent pas une barrière de sécurité à part entière.
- Utilisez les commandes RemoteSigned ou AllSigned pour bloquer les scripts distants non signés.
- Limitez la portée des politiques avec -Scope CurrentUser afin de restreindre les modifications au compte concerné.
- Réactivez les restrictions après usage : Set-ExecutionPolicy Restricted -Scope Process
Regroupez vos scripts dans un dossier dédié
Centralisez le stockage des scripts pour réduire le désordre et simplifier votre système. Créez un dossier nommé C: \Scripts, puis ajoutez-le au $env: Path de PowerShell. Vous pouvez également ajouter ce dossier à la barre d’outils Accès rapide de l’Explorateur de fichiers pour y accéder en un clic.
Sauvegardez le registre avant toute modification
Des modifications accidentelles dans le registre peuvent déstabiliser le système. Créer des fichiers de sauvegarde du registre ou d’une partie de son contenu vous permet de restaurer le système après une corruption.
- Dans l’Éditeur du registre, faites un clic droit sur Run with PowerShell, puis sélectionnez Exporter.
FAQ sur l’ajout du menu contextuel « Exécuter le fichier PS1 »
Puis-je configurer PowerShell pour qu’il s’exécute toujours en tant qu’administrateur depuis le menu contextuel ?
Oui, il suffit de modifier la commande du registre pour y inclure l’indicateur -Verb RunAs :
- Modifiez la clé de registre command (voir la section 2).
- Remplacez la commande par :
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command "& '%1'"
Est-il possible d’ajouter d’autres options PowerShell au menu du clic droit ?
- Oui, vous pouvez tout à fait ajouter d’autres entrées, comme Run as Admin ou Edit Script. Voici comment procéder :
- dupliquez la clé de registre Run with PowerShell sous HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell.
- Renommez-la et remplacez la valeur de la commande par :
"C:\Path\To\Code.exe" "%1"
Comment supprimer l’option « Exécuter le fichier PS1 » si je n’en ai plus besoin ?
- Suivez les étapes de la section 2 ci-dessus pour supprimer la clé de registre.
Cette méthode fonctionne-t-elle aussi sous Windows 11 ?
- Oui. La structure du registre et le fonctionnement de PowerShell sont identiques sous Windows 10 et 11.
Que se passe-t-il si mon script attend une saisie de l’utilisateur lorsqu’il est lancé depuis le menu contextuel ?
- La fenêtre PowerShell risque de se fermer immédiatement après l’exécution, coupant court aux prompts de saisie. Vous pouvez y remédier de la façon suivante :
- en ajoutant -NoExit à la commande du registre : … -File « %1 » -NoExit
- Pour les scripts nécessitant une interaction prolongée, exécutez-les manuellement dans PowerShell ou utilisez Start-Sleep pour mettre l’exécution en pause.
Simplifiez l’exécution des fichiers PS1 sous Windows
Ajouter une entrée de menu contextuel « Exécuter le fichier PS1 » sous Windows 10 simplifie l’exécution des scripts pour la gestion du système, l’automatisation ou la récupération de disques chiffrés. En intégrant PowerShell directement dans l’Explorateur de fichiers, les utilisateurs disposent d’un moyen fluide de lancer leurs scripts.
Cette fonction améliore la productivité, mais associez-la toujours à des politiques d’exécution sécurisées et à une relecture des scripts pour écarter tout risque involontaire. En conciliant efficacité et prudence, PowerShell reste un outil à la fois puissant et sûr pour votre système.
Guide de démarrage rapide
Vous pourriez créer un script personnalisé dans la bibliothèque d’automatisation NinjaOne qui permettrait de :
- ajouter une clé de registre pour créer l’entrée du menu contextuel
- Indiquer la commande d’exécution de PowerShell avec les paramètres appropriés
