Comment démarrer PowerShell à partir de l'Explorateur Windows?


259

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 dans un dossier et avoir une option comme "Ouvrir PowerShell dans ce dossier"?

C'est vraiment ennuyeux de devoir changer de répertoire dans mon dossier de projet la première fois que j'exécute MSBuild tous les jours.


16
[Alt] [F + S + A] pour démarrer le PowerShell administrateur dans le dossier actuel. Pour Windows 10 au moins.
Rosdi Kasim

Réponses:


526

Dans l'Explorateur Windows, accédez simplement à la barre d'adresse en haut (raccourcis clavier: Alt+ Dou Ctrl+ L) et tapez powershellou powershell_iseet appuyez sur Enter. Une fenêtre de commande PowerShell s'ouvre avec le répertoire actuel.


3
Lorsque je fais cela sur Win 7, l'Explorateur Windows m'emmène dans un dossier que j'ai nommé PowerShell!
Sabuncu

35
Si vous utilisez Windows 8 ou une version ultérieure, vous pouvez simplement utiliser le fichier intégré -> "Open Windows Powershell"
Vivek Maharajh

7
Cela ne fonctionne pas non plus si vous disposez d'un profil PowerShell qui définit le répertoire de démarrage. Si vous souhaitez démarrer sans le profil, vous pouvez utiliser "powershell -noprofile", mais vous perdez tous les paramètres que vous avez dans le profil. Il y a toujours un compromis.
grahamesd

9
un raccourci pour l'ouvrir en tant qu'administrateur?
Arsalan Ahmad

3
Au lieu de powershell, vous pouvez également taper powershell_ise qui est plus agréable car il est enfin redimensionnable et possède une police appropriée.
Michael S.

106

Juste pour ajouter 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.


1
@EBGreen, qu'est-ce que cela iisignifie?
Pacerier

5
Eh bien, à l'invite PowerShell, vous pouvez simplement taper: Get-Command ii, puis vous verrez qu'il s'agit d'un alias pour Invoke-Item.
EBGreen

79

Si vous utilisez Windows 8 ou une version ultérieure, vous pouvez simplement utiliser le fichier intégré → «Ouvrir Windows PowerShell».

Ou Alt+ Fsuivi de R.


1
Ouaip. J'ai également épinglé la version "Lancer en tant qu'administrateur".
Vivek Maharajh

@Andrej, comment faites-vous cela?
Pacerier

1
@Pacerier, avec le bouton droit de la souris sur l'élément de menu correspondant (par exemple, sur "Ouvrir Windows PowerShell").
Andrej

@Andrej, Par "épingler", voulez-vous dire l'option "Ajouter à la barre d'outils d'accès rapide"?
Pacerier

1
@Pacerier, je suis sûr que c'est ce qu'il veut dire. Vous pouvez également épingler à votre barre des tâches. Après l'avoir ouvert, faites un clic droit sur l'icône de la barre des tâches et épinglez-la.
Vivek Maharajh


44

Comme 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 existe trois clés de registre où ces commandes vont. Chaque touche contrôle le menu contextuel d'un objet Explorateur Windows différent. Le premier est celui que vous avez demandé:

  • HKCR \ Directory \ Background \ shell - Il s'agit du menu contextuel de la fenêtre de l'explorateur elle-même (c'est-à-dire le menu contextuel qui s'affiche lorsqu'aucun élément n'est sélectionné, par exemple lors d'un clic droit dans une zone vide de la fenêtre).
  • HKCR \ Directory \ shell - Il s'agit du menu contextuel des dossiers dans l'Explorateur Windows.
  • HKCR \ Drive \ shell - Il s'agit du menu contextuel des icônes de lecteur à la racine de l'Explorateur Windows.

Pour chacune de ces clés de registre, vous pouvez ajouter une sous-clé qui ajoutera 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 objets Explorer, l'arrière-plan de la fenêtre, le dossier et 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'"

Ainsi, 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 les pièces jointes étaient possibles.) Si vous souhaitez exclure la commande de l'une des entrées, commentez simplement 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 vous le demande, dites-lui de continuer. Dès que vous l'exécutez, les entrées du menu contextuel s'affichent!

Voici mon menu contextuel de la fenêtre Explorer. J'ai mis en évidence la console et les commandes PowerShell. Comme vous pouvez le voir, vous pouvez également ajouter une entrée de menu contextuel pour exécuter une fenêtre de commande élevée, c'est-à-dire 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é pour le shell de commande élevé est " runas ", c'est pourquoi il vient après l'entrée PowerShell.

Remarque : Si vous avez une fenêtre d'explorateur ouverte, vous devrez peut-être la fermer et la rouvrir pour que les modifications prennent effet.

Remarque : Sous Windows 7, le HKCR\Directory\Shellne fonctionne pas si vous utilisez la boîte à outils du côté de l'explorateur

(c'est-à-dire en cliquant sur Documents sous l'en-tête Bibliothèques)

vous devez naviguer en utilisant Computer -> C: -> to -> Some -> Target -> Directory


Un problème ici, c'est lorsque j'ouvre une fenêtre PS à l'aide de ce menu contextuel et que j'entre git help <cmd>, il vide le fichier d'aide html dans la fenêtre PS en texte brut. Lorsque j'utilise le menu Démarrer, cette fenêtre PS ouvre le navigateur comme il est censé le faire.
ProfK

@ProfK, je ne suis pas sûr de ce qui se passe là-bas, car je n'utilise pas 'git', cependant, la fenêtre PS qui s'ouvre en utilisant ce menu contextuel est IDENTIQUE à la fenêtre PS qui s'ouvre en utilisant le menu Démarrer, À MOINS QUE vous ne soyez à l'aide de PowerShell ISE lorsque vous l'exécutez à partir du menu Démarrer. Si tel est le cas, vous pouvez remplacer "powershell.exe" dans le fichier de registre ci-dessus par "powershell_ise.exe". Si vous exécutez le PowerShell normal, il n'y a aucune différence, à part le répertoire dans lequel ils démarrent. La commande Menu Démarrer démarre dans votre répertoire utilisateur, tandis que le menu contextuel démarre dans le répertoire local.
geo

@ProfK, Est-il possible que ce soit le répertoire de départ qui fasse la différence? Si vous avez quelque chose dans votre répertoire utilisateur concernant 'git', c'est peut-être la différence. Le but du menu contextuel est d'ouvrir PS dans le répertoire LOCAL, mais si la commande 'git' s'exécute différemment selon le répertoire dans lequel vous vous trouvez, cela pourrait être le problème. La différence d'annuaire et la différence entre PS et PS ISE sont les seules choses auxquelles je peux penser.
geo

@geo Merci pour tous les commentaires, mais j'ai trouvé que double-cliquer sur des fichiers html dans l'Explorateur les ouvrait dans Notepad ++. J'ai défini mon "Ouvrir avec" par défaut sur Chrome, mais j'ai également installé Posh-Git en même temps, et maintenant mon aide Git s'ouvre dans Chrome, pas PS. Le côté triste est que je ne sais pas ce qui a changé les choses fixes.
ProfK

1
Le script PS pour ajouter une invite PS élevée (supprimer la ligne HasLUAShield pour les non-élevés) est @ powershellmagazine.com/2013/06/25/…
James Manning


14

Dans Windows 10, l'invite de commande et l'invite PowerShell peuvent être trouvées via la barre de menus, pour les non-administrateurs et les administrateurs. Ces options auront son dossier défini sur le dossier actuellement sélectionné dans l'explorateur.

Pour la version suédoise au moins, le PowerShell 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 Alttouche pour voir les bons caractères. il y aura un caractère superposant l'élément de menu pour chaque étape.


2
Il s'agit de [Alt] [F + S + A] pour l'administrateur powershell sur mon Windows 10 (version anglaise)
Rosdi Kasim

6

Je voulais que ce menu contextuel ne fonctionne que lorsque vous cliquez avec le bouton droit de la souris et maintenez le bouton `` MAJ '', c'est ainsi que fonctionne le menu contextuel intégré `` Ouvrir la fenêtre de commande ici ''.

Cependant, aucune des solutions fournies ne l'a fait, j'ai donc dû rouler mon propre .regfichier - copiez le ci-dessous, enregistrez-le sous power-shell-here-on-shift.reget 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 d'alimentation ici tout en maintenant la touche Maj enfoncée et en appuyant sur le clic droit


5

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

Ou vous pouvez créer un raccourci qui ouvre PowerShell avec le dossier Démarrer dans étant votre dossier Projets.


3

C'est encore plus facile dans Windows 8.1 et Server 2012 R2.

Faites-le une fois: cliquez avec le bouton droit sur la barre des tâches, choisissez Propriétés. Dans l'onglet Navigation, activez [✓] Remplacer invite de commande Windows PowerShell dans le menu lorsque je clic 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, Apour une invite Admin PowerShell)


4
Joli raccourci, mais cela ne démarre pas PowerShell dans le dossier actuel.
steenhulthin

3

Ce qui suit est un résumé concis (et mis à jour) des solutions antérieures. Voici quoi faire:

Ajoutez ces chaînes et leurs clés parentes 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. Ajoutez les chaînes "Extended" pour que les commandes ne soient visibles que si vous maintenez la touche "Shift", tout le reste est superflu.


3

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

Je ne l'ai pas encore essayé, donc 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


2

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

Ils incluent PowerShell Prompt Here et PowerShell Prompt Here en tant qu'administrateur.


Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien de référence. Les réponses de lien uniquement peuvent devenir invalides si la page liée change.
Lundin

C'est un point valable à considérer lors de la publication d'un lien; cependant, l'article lié contient le téléchargement faisant autorité vers les Elevation PowerToys, qui est la partie essentielle de la réponse.
Mark Larson

2

En ajoutant les clés de registre ci-dessous, dans Windows 10, j'ai réussi à obtenir l' option Ouvrir PowerShell ici dans mes SHIFT + RClickmenus contextuels. Copiez-les simplement dans un fichier bloc-notes vierge, puis enregistrez-les en tant que .regfichier et exécutez le fichier pour ajouter la clé et cela devrait fonctionner à partir de là. Certaines de ces autres réponses disent d'ajouter la clé dans HKCR \ Directory \ shell mais j'ai trouvé que pour moi 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'"

1
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
if(-not (Test-Path -Path "HKCR:\Directory\shell\$KeyName"))
{
    Try
    {
        New-Item -itemType String "HKCR:\Directory\shell\$KeyName" -value "Open PowerShell in this Folder" -ErrorAction Stop
        New-Item -itemType String "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é expliquant comment démarrer PowerShell à partir de l'Explorateur Windows


1

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

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

Lorsque vous créez un raccourci vers PowerShell pour la première fois de la manière habituelle, la zone de début dans spécifie le répertoire de base. Si vous videz la zone de début, vous disposez maintenant d'un raccourci vers PowerShell qui ouvre PS dans le répertoire actuel, quel qu'il soit.

Si vous copiez maintenant ce raccourci dans le répertoire cible et utilisez l'explorateur pour l'invoquer, vous démarrerez un PS pointé vers le répertoire cible.

Il y a déjà une réponse acceptée à cette question, mais je propose cela comme une autre façon.


1

Pour les utilisateurs de clé automatique, voici un extrait que j'utilise

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

Si votre "fenêtre active" est une fenêtre de l'Explorateur Windows, le PowerShell est ouvert dans le dossier actuel . Sinon, ouvrez simplement PowerShell dans un dossier par défaut .

Utilisation: 1) Installez AutoHotkey et copiez-collez-le dans myscript.ahk 2) Remplacez <DefaultPath>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:\<DefaultPath>'
    ls
    )
    Run "%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe" -NoExit -Command &{%psScript%}
}
return

1

Je suis surpris que personne n'ait donné cette réponse, c'est la plus simple. (Ça doit être l'année.)

Juste Shift + clic droit dans l'Explorateur. Ensuite, vous pouvez "Ouvrir la fenêtre PowerShell ici".

Il peut être défini sur Invite de commandes par défaut. Si tel est le cas, vous pouvez modifier cela dans les paramètres de Windows 10: accédez à Personnalisation -> Barre des tâches et activez "Remplacer l'invite de commande par Windows PowerShell dans le menu lorsque je clique avec le bouton droit sur le bouton Démarrer ou appuie sur la touche Windows + X".


1

Windows 10 l'a rendu beaucoup plus facile. Tu peux soit:

  • [SHIFT] + [Clic droit] sur un dossier, et vous obtenez un élément de menu Open PowerShell window here.

Ou tu peux:

  • File-> Open Windows PowerShell.

Et pour un bonus ...

Si vous faites un clic droit sur File-> Open Windows PowerShell, vous pouvez Add to Quick Access Toolbar:

entrez la description de l'image ici

Ce qui met une icône pratique ici:

entrez la description de l'image ici

Et maintenant, vous pouvez simplement cliquer sur cette icône. :)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.