Wie starte ich PowerShell über den Windows Explorer?

259

Gibt es eine Möglichkeit, PowerShell in einem bestimmten Ordner über den Windows Explorer zu starten, z. B. mit der rechten Maustaste in einen Ordner zu klicken und eine Option wie "PowerShell in diesem Ordner öffnen" zu verwenden?

Es ist wirklich ärgerlich, Verzeichnisse in meinen Projektordner ändern zu müssen, wenn ich MSBuild jeden Tag zum ersten Mal ausführe.

Josh Kodroff
quelle
16
[Alt] [F + S + A], um die Administrator-Powershell im aktuellen Ordner zu starten. Zumindest für Windows 10.
Rosdi Kasim
Dies ist die Antwort: channel9.msdn.com/Shows/Defrag-Tools/…
HelpingHand

Antworten:

525

Gehen Sie im Windows Explorer einfach zur Adressleiste oben (Tastaturkürzel: Alt+ Doder Ctrl+ L) und geben Sie powershelloder ein powershell_iseund drücken Sie Enter. Ein PowerShell-Befehlsfenster mit dem aktuellen Verzeichnis wird geöffnet.

Ashwin Nanjappa
quelle
3
Wenn ich dies unter Win 7 mache, bringt mich Windows Explorer zu einem Ordner mit dem Namen PowerShell!
Sabuncu
35
Wenn Sie unter Windows 8 oder höher arbeiten, können Sie einfach die integrierte Datei -> "Windows Powershell
öffnen
7
Es funktioniert auch nicht, wenn Sie ein PowerShell-Profil haben, das das Startverzeichnis festlegt. Wenn Sie ohne das Profil starten möchten, können Sie "Powershell -noprofile" verwenden, verlieren dann aber alle Einstellungen, die Sie im Profil haben. Es gibt immer einen Kompromiss.
Grahamesd
9
Gibt es eine Verknüpfung, um es als Administrator zu öffnen?
Arsalan Ahmad
3
Anstelle von Powershell können Sie auch Powershell_ise eingeben. Dies ist besser, da die Größe endgültig geändert werden kann und die richtige Schriftart vorhanden ist.
Michael S.
106

Um dies als Trick umzukehren, können Sie an einer PowerShell-Eingabeaufforderung Folgendes tun:

ii .

oder

start .

um ein Windows Explorer-Fenster in Ihrem aktuellen Verzeichnis zu öffnen.

EBGreen
quelle
1
@EBGreen, was heißt iidas?
Pacerier
5
Nun, an einer Powershell-Eingabeaufforderung könnten Sie einfach Folgendes eingeben: Get-Command ii, dann würden Sie sehen, dass es sich um einen Alias ​​für Invoke-Item handelt.
EBGreen
78

Wenn Sie unter Windows 8 oder höher arbeiten, können Sie einfach die integrierte Datei verwenden → "Windows PowerShell öffnen" verwenden.

Oder Alt+ Fgefolgt von R.

Vivek Maharajh
quelle
1
Jep. Ich habe auch die Version "Als Administrator starten" angeheftet.
Vivek Maharajh
@Andrej, wie machst du das?
Pacerier
1
@Pacerier, mit der rechten Maustaste auf dem entsprechenden Menüpunkt (z. B. unter "Windows PowerShell öffnen").
Andrej
@Andrej, Mit "Fixieren" meinen Sie die Option "Zur Symbolleiste für den Schnellzugriff hinzufügen"?
Pacerier
1
@ Pacerier, ich bin mir ziemlich sicher, dass er das meint. Sie können auch an Ihre Taskleiste anheften. Klicken Sie nach dem Öffnen mit der rechten Maustaste auf das Symbol in der Taskleiste und heften Sie es an.
Vivek Maharajh
57

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

Scott Hanselman hat eine wirklich einfache Inf, die dies für Sie erledigt. Wenn Sie das Skript optimieren möchten, können Sie die Informationen ganz einfach für Anpassungen bearbeiten.

Chris Sutton
quelle
Können Sie eine Zusammenfassung bereitstellen (z. B. ist Link Rot immer ein Problem)?
Peter Mortensen
Was ist ein "inf" (in diesem Zusammenhang)?
Peter Mortensen
44

Alternativ zu der obigen Antwort, bei der Sie jedes Mal den PowerShell-Befehl ( Powershell.exe ) eingeben müssen, können Sie einen Kontextmenüeintrag erstellen, genau wie im Kontextmenü " Befehlsfenster hier öffnen ".

Es gibt drei Registrierungsschlüssel, in die diese Befehle gehen. Jede Taste steuert das Kontextmenü eines anderen Windows Explorer-Objekts. Der erste ist der, nach dem Sie gefragt haben:

  • HKCR \ Directory \ Background \ shell - Dies ist das Kontextmenü für das Explorer-Fenster selbst ( dh das Kontextmenü, das angezeigt wird, wenn kein Element ausgewählt ist, z. B. wenn Sie mit der rechten Maustaste in einen leeren Bereich des Fensters klicken).
  • HKCR \ Directory \ shell - Dies ist das Kontextmenü der Ordner im Windows Explorer.
  • HKCR \ Drive \ shell - Dies ist das Kontextmenü für die Laufwerkssymbole im Stammverzeichnis von Windows Explorer.

Für jeden dieser Registrierungsschlüssel können Sie einen Unterschlüssel hinzufügen, der dem Kontextmenü den Befehl "PowerShell-Fenster hier öffnen" hinzufügt, genau wie Sie das Kontextmenü "Befehlsfenster hier öffnen" haben.

Hier ist eine Kopie meiner OpenPowerShellHere.reg- Datei, in der der Befehl in das Kontextmenü jedes Explorer-Objekts, des Fensterhintergrunds, des Ordners und des Laufwerkssymbols eingefügt wird:

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'"

Öffnen Sie also mit Ihrem bevorzugten Texteditor eine neue Datei mit dem Namen OpenPowerShellHere.reg . Kopieren Sie den genauen Text des obigen Codes, fügen Sie ihn in die neue Datei ein und speichern Sie ihn. (Ich hätte eine Kopie der Datei beigefügt, konnte aber nicht herausfinden, ob Anhänge möglich waren.) Wenn Sie den Befehl aus einem der Einträge ausschließen möchten , kommentieren Sie einfach den entsprechenden Abschnitt mit Semikolons aus. Meine Kommentare zeigen Ihnen jeden Abschnitt.

Nachdem Sie die Datei gespeichert haben, führen Sie sie durch Doppelklick aus. Wenn Sie dazu aufgefordert werden, teilen Sie ihm mit, dass er fortfahren soll. Sobald Sie es ausführen, werden die Kontextmenüeinträge angezeigt!

Hier ist das Kontextmenü meines Explorer-Fensters. Ich habe die Konsolen- und PowerShell-Befehle hervorgehoben. Wie Sie sehen können, können Sie auch einen Kontextmenüeintrag hinzufügen, um ein Fenster mit erhöhten Befehlen auszuführen, z. B. Als Administrator ausführen .

PowerShell-Eintrag im Explorer-Kontextmenü

Hinweis : Kontextmenüeinträge werden alphabetisch basierend auf ihren Registrierungsschlüsseln angezeigt. Der Schlüsselname für die Shell mit erhöhten Befehlen lautet " runas ", weshalb er nach dem PowerShell-Eintrag steht.

Hinweis : Wenn Sie ein Explorer-Fenster geöffnet haben, müssen Sie es möglicherweise schließen und erneut öffnen, damit die Änderung wirksam wird.

Hinweis : In Windows 7 HKCR\Directory\Shellfunktioniert das nicht, wenn Sie das Toolkit an der Seite des Explorers verwenden

(dh Klicken Sie auf Dokumente unter der Überschrift Bibliotheken)

Sie müssen mit navigieren Computer -> C: -> to -> Some -> Target -> Directory

Geo
quelle
Ein Problem hierbei ist, dass beim Öffnen eines PS-Fensters über dieses Kontextmenü und beim Eingeben git help <cmd>die HTML-Hilfedatei im PS-Fenster als einfacher Text ausgegeben wird. Wenn ich das Startmenü benutze, öffnet dieses PS-Fenster den Browser wie vorgesehen.
ProfK
@ProfK, ich bin mir nicht sicher, was dort vor sich geht, da ich nicht 'git' verwende. Das PS-Fenster, das über dieses Kontextmenü geöffnet wird, ist jedoch identisch mit dem PS-Fenster, das über das Startmenü geöffnet wird, es sei denn, Sie sind Verwenden von PowerShell ISE, wenn Sie es über das Startmenü ausführen. In diesem Fall können Sie "Powershell.exe" in der obigen Registrierungsdatei in "Powershell_ise.exe" ändern. Wenn Sie die reguläre PowerShell ausführen, gibt es keinen Unterschied außer dem Verzeichnis, in dem sie gestartet werden. Der Befehl Startmenü wird in Ihrem Benutzerverzeichnis gestartet, während das Kontextmenü im lokalen Verzeichnis gestartet wird.
Geo
@ProfK, Ist es möglich, dass das Startverzeichnis den Unterschied macht? Wenn Sie etwas in Ihrem Benutzerverzeichnis bezüglich 'git' haben, ist das vielleicht der Unterschied. Der gesamte Zweck des Kontextmenüs besteht darin, PS im Verzeichnis LOCAL zu öffnen. Wenn der Befehl 'git' jedoch je nach Verzeichnis unterschiedlich ausgeführt wird, kann dies das Problem sein. Der Verzeichnisunterschied und der Unterschied zwischen PS und PS ISE sind die einzigen Dinge, an die ich denken kann.
Geo
@geo Vielen Dank für all das Feedback, aber ich fand, dass das Doppelklicken auf HTML-Dateien im Explorer sie in Notepad ++ öffnete. Ich habe meine Standardeinstellung "Öffnen mit" auf Chrome gesetzt, aber gleichzeitig auch Posh-Git installiert, und jetzt wird meine Git-Hilfe in Chrome und nicht in PS geöffnet. Die traurige Seite ist, dass ich nicht weiß, welche festen Dinge sich geändert haben.
ProfK
1
Das PS-Skript zum Hinzufügen einer erhöhten PS-Eingabeaufforderung (entfernen Sie die HasLUAShield-Zeile für nicht erhöhte) lautet @ Powershellmagazine.com/2013/06/25/…
James Manning
14

In Windows 10 finden Sie sowohl die Eingabeaufforderung als auch die Powershell-Eingabeaufforderung über die Menüleiste, sowohl für Nicht-Administratoren als auch für Administratoren. Bei diesen Optionen wird der Ordner im Explorer auf den aktuell ausgewählten Ordner festgelegt.

Zumindest für die schwedische Version wird die Powershell mit geöffnet Alt F+I. Für einen Administrator ist es PowerShell Alt F+S+P.

Windows Powershell-Menü

Wenn dies nicht die richtigen Zeichen sind, können Sie die AltTaste gedrückt halten , um die richtigen Zeichen anzuzeigen. Für jeden Schritt wird ein Zeichen über den Menüpunkt gelegt.

Standard
quelle
2
Es ist [Alt] [F + S + A] für Administrator Powershell auf meinem Windows 10 (englische Version)
Rosdi Kasim
6

Ich wollte, dass dieses Kontextmenü nur funktioniert, wenn ich mit der rechten Maustaste klicke und halte der die UMSCHALTTASTE gedrückt halten. So funktioniert das integrierte Kontextmenü "Befehlsfenster hier öffnen".

Da jedoch keine der bereitgestellten Lösungen dies tat, musste ich meine eigene .regDatei rollen - kopieren Sie die folgende, speichern Sie sie als power-shell-here-on-shift.regund doppelklicken Sie darauf.

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'"

Öffnen Sie hier die Power Shell, während Sie die Umschalttaste gedrückt halten und mit der rechten Maustaste drücken

Daniel Sokolowski
quelle
5

Probieren Sie PowerShell PowerToy aus ... Es wird hier ein Kontextmenüelement für Open PowerShell hinzugefügt .

Sie können auch eine Verknüpfung erstellen, die PowerShell öffnet, wobei der Ordner Start In Ihr Projektordner ist.

Steven Murawski
quelle
3

In Windows 8.1 und Server 2012 R2 ist dies noch einfacher.

Tun Sie dies einmal: Klicken Sie mit der rechten Maustaste auf die Taskleiste und wählen Sie Eigenschaften. Aktivieren Sie auf der Registerkarte Navigation im Menü [✓] Eingabeaufforderung durch Windows PowerShell ersetzen, wenn ich mit der rechten Maustaste auf die untere linke Ecke klicke oder die Windows-Taste + X drücke .

Wenn Sie eine PowerShell-Eingabeaufforderung wünschen, klicken Sie auf Win+X, I. (Oder Win+X, Afür eine Admin Powershell - Eingabeaufforderung)

Warren Rumak
quelle
4
Schöne Verknüpfung, aber dies startet PowerShell nicht im aktuellen Ordner.
Steenhulthin
3

Das Folgende ist eine kurze (und aktualisierte) Zusammenfassung der früheren Lösungen. Folgendes ist zu tun:

Fügen Sie diese Zeichenfolgen und ihre jeweiligen übergeordneten Schlüssel hinzu:

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

an diesen Standorten

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

Das ist es. Fügen Sie die "Extended" -Strings hinzu, damit die Befehle nur sichtbar sind, wenn Sie die "Shift" -Taste gedrückt halten. Alles andere ist überflüssig.

ppw0
quelle
3

Es gibt eine Windows Explorer-Erweiterung des Typen, der Tools für SVN erstellt, die zumindest ein Eingabeaufforderungsfenster öffnen.

Ich habe es noch nicht ausprobiert, daher weiß ich nicht, ob es PowerShell funktioniert, aber ich wollte die Liebe mit meinen Stack Overflow-Brüdern teilen:

http://tools.tortoisesvn.net/StExBar

Josh Kodroff
quelle
2

Eine weitere Option sind die hervorragenden Elevation PowerToys von Michael Murgolo im TechNet unter http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx .

Dazu gehören PowerShell Prompt Here und PowerShell Prompt Here als Administrator.

Mark Larson
quelle
Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert.
Lundin
Dies ist ein gültiger Punkt, der beim Posten eines Links berücksichtigt werden muss. enthalten jedoch die verlinkten Artikel den maßgeblichen Download auf die Elevation PowerToys, das ist der wesentliche Teil der Antwort.
Mark Larson
2

Durch Hinzufügen der folgenden Registrierungsschlüssel in Windows 10 gelang es mir, die Option Open PowerShell Here in meinen SHIFT + RClickKontextmenüs zu erhalten. Kopieren Sie diese einfach in eine leere Editor-Datei, speichern Sie sie als .regDatei und führen Sie die Datei aus, um den Schlüssel hinzuzufügen. Von dort aus sollte es funktionieren. Einige dieser anderen Antworten besagen, dass der Schlüssel in HKCR \ Directory \ shell eingefügt werden soll, aber ich habe festgestellt, dass er nur mit den Schlüsseln in HKLM \ SOFTWARE \ Classes \ Directory \ shell funktioniert

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'"
Rhys
quelle
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."
}

Sie können ein Detailskript herunterladen , indem Sie PowerShell über den Windows Explorer starten

Frank Tan
quelle
1

Eine ziemlich einfache Alternative besteht darin, PowerShell über eine Verknüpfung aufzurufen. Es gibt eine Verknüpfungseigenschaft mit der Bezeichnung "Start in", die angibt, welches Verzeichnis (Ordner) beim Aufrufen der Verknüpfung verwendet werden soll.

Wenn das Feld Start In leer ist, bedeutet dies, dass Sie das aktuelle Verzeichnis verwenden.

Wenn Sie zum ersten Mal eine Verknüpfung zu PowerShell auf die übliche Weise erstellen, gibt das Feld Start in das Ausgangsverzeichnis an. Wenn Sie das Feld Start in ausblenden, haben Sie jetzt eine Verknüpfung zu Powershell, mit der PS im aktuellen Verzeichnis geöffnet wird.

Wenn Sie diese Verknüpfung jetzt in das Zielverzeichnis kopieren und sie mit dem Explorer aufrufen, starten Sie eine PS, die auf das Zielverzeichnis zeigt.

Es gibt bereits eine akzeptierte Antwort auf diese Frage, aber ich biete dies als einen anderen Weg an.

Walter Mitty
quelle
1

Für Autohotkey-Benutzer ist hier ein Ausschnitt, den ich verwende

Es öffnet das PowerShell-Fenster, wenn Sie drücken Ctrl-Alt-T. (Getestet mit Win10)

Wenn Ihr "aktives Fenster" ein Windows Explorer-Fenster ist, wird die PowerShell im aktuellen Ordner geöffnet . Andernfalls öffnen Sie einfach PowerShell in einem Standardordner .

Verwendung: 1) Installieren Sie AutoHotkey und kopieren Sie es, fügen Sie es in myscript.ahk ein. 2) Ersetzen Sie es <DefaultPath>durch einen Pfad Ihrer Wahl. 3) Führen Sie das Skript aus.

; 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
np8
quelle
1

Ich bin überrascht, dass niemand diese Antwort gegeben hat, es ist die einfachste. (Muss das Jahr sein.)

Einfach Umschalt + Rechtsklick im Explorer. Dann können Sie "PowerShell-Fenster hier öffnen".

Es kann standardmäßig auf Eingabeaufforderung eingestellt sein. Wenn ja, können Sie dies in den Windows 10-Einstellungen ändern: Gehen Sie zu Personalisierung -> Taskleiste und aktivieren Sie im Menü "Eingabeaufforderung durch Windows PowerShell ersetzen, wenn ich mit der rechten Maustaste auf die Startschaltfläche klicke oder die Windows-Taste + X drücke".

Andrew
quelle
0

Windows 10 hat es viel einfacher gemacht. Du kannst entweder:

  • [UMSCHALT] + [Rechtsklick] auf einen Ordner und Sie erhalten einen Menüpunkt Open PowerShell window here.

Oder du kannst:

  • File-> Open Windows PowerShell.

Und für einen Bonus ...

Wenn Sie mit der rechten Maustaste auf File-> klicken Open Windows PowerShell, können Sie Add to Quick Access Toolbar:

Geben Sie hier die Bildbeschreibung ein

Was hier ein praktisches Symbol darstellt:

Geben Sie hier die Bildbeschreibung ein

Und jetzt können Sie einfach auf dieses Symbol klicken. :) :)

Craigo
quelle