Comment démarrer PowerShell à partir de Windows Explorer?

Existe-t-il un moyen de démarrer PowerShell dans un dossier spécifique à partir de l’Explorateur Windows, par exemple pour cliquer avec le bouton droit de la souris sur un dossier et disposer d’une option comme “Ouvrir PowerShell dans ce dossier”?

C’est vraiment chiant de devoir changer de répertoire dans mon dossier de projet la première fois que je lance MSBuild tous les jours.

Dans l’Explorateur Windows, accédez à la barre d’adresse en haut (raccourcis clavier: Alt + D ou Ctrl + L ) et tapez powershell ou powershell_ise et appuyez sur Entrée . Une fenêtre de commande PowerShell s’ouvre avec le répertoire en cours.

Juste pour append à l’inverse comme une astuce, à une invite PowerShell, vous pouvez faire:

 ii . 

ou

 start . 

pour ouvrir une fenêtre de l’Explorateur Windows dans votre répertoire actuel.

Si vous êtes sur Windows 8 ou plus tard, vous pouvez simplement utiliser le fichier intégré → “Ouvrir Windows PowerShell”.

Ou Alt + F suivi de R.

http://www.hanselman.com/blog/IntroducingPowerShellPromptHere.aspx

Scott Hanselman a un très simple inf qui le fera pour vous. Si vous voulez modifier le script, il est très facile d’écrire les inf pour les personnaliser.

En guise d’alternative à la réponse ci-dessus, qui vous oblige à taper la commande PowerShell ( powershell.exe ) à chaque fois, vous pouvez créer une entrée de menu contextuel comme avec le menu contextuel ” Ouvrir la fenêtre de commande ici “.

Il y a trois clés de registre où ces commandes vont. Chaque clé contrôle le menu contextuel d’un autre object Windows Explorer. Le premier est celui que vous avez demandé sur:

  • HKCR \ Directory \ Background \ shell – C’est le menu contextuel de la fenêtre de l’explorateur elle-même (c’est-à-dire le menu contextuel qui s’affiche lorsque aucun élément n’est sélectionné, par exemple lorsque vous cliquez avec le bouton droit dans une zone vide de la fenêtre).
  • HKCR \ Directory \ shell – Ceci est le menu contextuel des dossiers dans Windows Explorer.
  • HKCR \ Drive \ shell – Il s’agit du menu contextuel des icons de lecteur à la racine de Windows Explorer.

Pour chacune de ces clés de registre, vous pouvez append une sous-clé qui appenda une commande “Ouvrir la fenêtre PowerShell ici” au menu contextuel, tout comme vous avez un menu contextuel “Ouvrir la fenêtre de commande ici”.

Voici une copie de mon fichier OpenPowerShellHere.reg , qui place la commande dans le menu contextuel de chacun des objects de l’Explorateur, de l’arrière-plan de la fenêtre, du dossier et de l’icône du lecteur:

 Windows Registry Editor Version 5.00 ; ; Add context menu entry to Windows Explorer background ; [HKEY_CLASSES_ROOT\Directory\Background\shell\powershell] @="Open PowerShell window here" "NoWorkingDirectory"="" [HKEY_CLASSES_ROOT\Directory\Background\shell\powershell\command] @="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'" ; ; Add context menu entry to Windows Explorer folders ; [HKEY_CLASSES_ROOT\Directory\shell\powershell] @="Open PowerShell window here" "NoWorkingDirectory"="" [HKEY_CLASSES_ROOT\Directory\shell\powershell\command] @="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'" ; ; Add context menu entry to Windows Explorer drive icons ; [HKEY_CLASSES_ROOT\Drive\shell\powershell] @="Open PowerShell window here" "NoWorkingDirectory"="" [HKEY_CLASSES_ROOT\Drive\shell\powershell\command] @="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'" 

Donc, avec votre éditeur de texte préféré, ouvrez un nouveau fichier nommé OpenPowerShellHere.reg . Copiez le texte exact du code ci-dessus, collez-le dans le nouveau fichier et enregistrez-le. (J’aurais inclus une copie du fichier, mais je n’ai pas pu déterminer si des pièces jointes étaient possibles.) Si vous souhaitez exclure la commande de l’une des entrées, il vous suffit de commenter la section appropriée avec des points-virgules. Mes commentaires vous montrent chaque section.

Après avoir enregistré le fichier, exécutez-le en double-cliquant dessus. Quand il demande, dites-lui de procéder. Dès que vous l’exécutez, les entrées du menu contextuel s’afficheront!

Voici le menu contextuel de ma fenêtre Explorer. J’ai mis en évidence les commandes de la console et de PowerShell. Comme vous pouvez le voir, vous pouvez également append une entrée de menu contextuel pour exécuter une fenêtre de commande élevée, à savoir Exécuter en tant qu’administrateur .

Entrée PowerShell dans le menu contextuel de l'explorateur

Remarque : Les entrées du menu contextuel sont affichées par ordre alphabétique, en fonction de leurs clés de registre. Le nom de clé du shell de commande élevé est ” runas “, ce qui explique pourquoi il vient après l’entrée PowerShell.

Vous pouvez télécharger le fichier inf à partir d’ici – Présentation de l’invite PowerShell ici

Sous Windows 10, l’invite de commandes et l’invite Powershell sont accessibles via la barre de menus, à la fois pour les administrateurs et les non-administrateurs. Ces options auront leur dossier défini dans le dossier actuellement sélectionné à partir de l’explorateur.

Pour la version suédoise au moins, le PowerSell est ouvert avec Alt F + I. Pour un administrateur powershell, c’est Alt F + S + P.

Menu Windows PowerShell

Si ce ne sont pas les bons caractères, vous pouvez appuyer et maintenir la touche Alt pour voir les caractères corrects. il y aura un caractère superposé à l’élément de menu pour chaque étape.

Je voulais que ce menu contextuel ne fonctionne que lorsque vous cliquez avec le bouton droit de la souris et maintenez la touche SHIFT enfoncée, ce qui explique comment fonctionne le menu contextuel de la fenêtre Ouvrir la commande ici.

Cependant, aucune des solutions proposées ne l’a fait, j’ai donc dû déployer mon propre fichier .reg – copiez le fichier ci-dessous, enregistrez-le sous le nom de power-shell-here-on-shift.reg et double-cliquez dessus.

 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\powershell] @="Open PowerShell here" "NoWorkingDirectory"="" "Extended"="" [HKEY_CLASSES_ROOT\Directory\shell\powershell\command] @="C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%L'" 

ouvrir la coque de puissance ici tout en maintenant la touche Maj et en appuyant sur le clic droit

C’est encore plus facile sous Windows 8.1 et Server 2012 R2.

Faites cela une fois: Cliquez avec le bouton droit sur la barre des tâches, choisissez Propriétés. Dans l’onglet Navigation, activez [✓] Remplacer l’invite de commandes par Windows PowerShell dans le menu lorsque je clique avec le bouton droit sur le coin inférieur gauche ou appuyez sur la touche Windows + X.

Ensuite, chaque fois que vous voulez une invite PowerShell, appuyez sur Win + X , I. (Ou Win + X , A pour une invite Admin PowerShell)

Essayez PowerShell PowerToy … Il ajoute un élément de menu contextuel pour Open PowerShell ici .

Vous pouvez également créer un raccourci qui ouvre PowerShell avec le dossier Démarrer dans, qui sera votre dossier Projets.

Il y a une extension Windows Explorer faite par le mec qui crée des outils pour SVN qui ouvriront au moins une fenêtre d’invite de commandes.

Je ne l’ai pas encore essayé, alors je ne sais pas si ça va faire PowerShell, mais je voulais partager l’amour avec mes frères Stack Overflow:

http://tools.tortoisesvn.net/StExBar

Une autre option est l’excellent Elevation PowerToys de Michael Murgolo sur TechNet à l’ adresse http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx .

Ils comprennent PowerShell Prompt Here et PowerShell Prompt Here en tant qu’administrateur.

Ce qui suit est une synthèse concise (et mise à jour) des solutions précédentes. Voici quoi faire:

Ajoutez ces chaînes et leurs clés parent respectives:

 pwrshell\(Default) < Open PowerShell Here pwrshell\command\(Default) < powershell -NoExit -Command Set-Location -LiteralPath '%V' pwrshelladmin\(Default) < Open PowerShell (Admin) pwrshelladmin\command\(Default) < powershell -Command Start-Process -verb runAs -ArgumentList '-NoExit','cd','%V' powershell 

à ces endroits

 HKCR\Directory\shell (for folders) HKCR\Directory\Background\shell (Explorer window) HKCR\Drive\shell (for root drives) 

C'est tout. Ajouter les chaînes "Extended" pour les commandes uniquement pour être visible si vous maintenez la touche "Shift", tout le rest est superflu.

En ajoutant les clés de registre ci-dessous, sous Windows 10, j’ai réussi à obtenir l’option Open PowerShell Here dans mes menus contextuels SHIFT + RClick . Il suffit de les copier dans un fichier de bloc-notes vide, puis de les enregistrer en tant que fichier .reg et d’exécuter le fichier pour append la clé. Certaines de ces autres réponses disent d’append la clé dans HKCR \ Directory \ shell mais j’ai trouvé que cela ne fonctionnait qu’avec les clés allant dans HKLM \ SOFTWARE \ Classes \ Directory \ shell

 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\powershell] "Extended"="" "NoWorkingDirectory"="" @="Open PowerShell here" "Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\powershell\command] @="C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\powershell] @="Open PowerShell here" "Extended"="" "Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe" "NoWorkingDirectory"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\powershell\command] @="C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'" 
 New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT if(-not (Test-Path -Path "HKCR:\Directory\shell\$KeyName")) { Try { New-Item -itemType Ssortingng "HKCR:\Directory\shell\$KeyName" -value "Open PowerShell in this Folder" -ErrorAction Stop New-Item -itemType Ssortingng "HKCR:\Directory\shell\$KeyName\command" -value "$env:SystemRoot\system32\WindowsPowerShell\v1.0\powershell.exe -noexit -command Set-Location '%V'" -ErrorAction Stop Write-Host "Successfully!" } Catch { Write-Error $_.Exception.Message } } else { Write-Warning "The specified key name already exists. Type another name and try again." } 

Vous pouvez télécharger un script détaillé à partir du démarrage de PowerShell à partir de l’Explorateur Windows

Une alternative assez simple consiste à appeler PowerShell via un raccourci. Il existe une propriété de raccourci intitulée “Démarrer dans” qui indique quel répertoire (dossier) utiliser lorsque le raccourci est appelé.

Si la zone Démarrer dans est vide, cela signifie utiliser le répertoire en cours.

Lorsque vous créez un raccourci vers PowerShell pour la première fois, la zone de démarrage spécifie le répertoire de base. Si vous supprimez la zone de début, vous disposez maintenant d’un raccourci vers powershell qui ouvre PS dans le répertoire en cours, quel qu’il soit.

Si vous copiez maintenant ce raccourci dans le répertoire cible et utilisez explorer pour l’appeler, vous lancerez un PS qui pointe sur le répertoire cible.

Il y a déjà une réponse acceptée à cette question, mais je propose cela comme une autre manière.

Pour les utilisateurs d’Autohotkey, voici un extrait de code que j’utilise

Il ouvre la fenêtre PowerShell lorsque vous Ctrl-Alt-T sur Ctrl-Alt-T . (Testé avec Win10)

Si votre “fenêtre active” est une fenêtre Windows Explorer, alors le PowerShell est ouvert dans le dossier actuel . Sinon, ouvrez simplement PowerShell dans un dossier par défaut .

Usage: 1) Installez AutoHotkey et copiez-le dans myscript.ahk. 2) Remplacez par le chemin de votre choix. 3) Exécutez le script.

 ; Ctrl-Alt-T opens PowerShell in the current folder, if using Windows Explorer. Otherwise, just open the Powershell. ^!T:: if WinActive("ahk_class CabinetWClass") and WinActive("ahk_exe explorer.exe") { KeyWait Control KeyWait Alt Send {Ctrl down}l{Ctrl up} Send powershell{Enter} } else { psScript = ( cd 'C:\' ls ) Run "%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe" -NoExit -Command &{%psScript%} } return