Jak uruchomić PowerShell z Eksploratora Windows?

259

Czy istnieje sposób uruchomienia programu PowerShell w określonym folderze z Eksploratora Windows, np. Kliknięcie folderu prawym przyciskiem myszy i wybranie opcji „Otwórz PowerShell w tym folderze”?

Naprawdę denerwujące jest zmienianie katalogów do folderu projektu przy pierwszym uruchomieniu MSBuild każdego dnia.

Josh Kodroff
źródło
16
[Alt] [F + S + A], aby uruchomić PowerShell administratora w bieżącym folderze. Co najmniej dla systemu Windows 10.
Rosdi Kasim,
Oto odpowiedź: channel9.msdn.com/Shows/Defrag-Tools/…
HelpingHand

Odpowiedzi:

525

W Eksploratorze Windows po prostu przejdź do paska adresu u góry (skróty klawiaturowe: Alt+ Dlub Ctrl+ L) i wpisz powershelllub powershell_isenaciśnij Enter. Zostanie otwarte okno poleceń PowerShell z bieżącym katalogiem.

Ashwin Nanjappa
źródło
3
Gdy robię to w Win 7, Eksplorator Windows przenosi mnie do folderu, który mam o nazwie PowerShell!
Sabuncu
35
Jeśli korzystasz z systemu Windows 8 lub nowszego, możesz po prostu użyć wbudowanego pliku -> „Otwórz Windows Powershell”
Vivek Maharajh,
7
Nie działa również, jeśli masz profil PowerShell, który ustawia katalog startowy. Jeśli chcesz uruchomić bez profilu, możesz użyć „powershell -noprofile”, ale wtedy utracisz wszystkie ustawienia, które masz w profilu. Zawsze jest kompromis.
grahamesd
9
jakiś skrót, aby otworzyć go jako administrator?
Arsalan Ahmad
3
Zamiast programu PowerShell można również wpisać PowerShell_ise, który jest ładniejszy, ponieważ w końcu można go zmienić i ma odpowiednią czcionkę.
Michael S.
106

Aby dodać odwrotnie jako podstęp, w wierszu polecenia programu PowerShell możesz wykonać:

ii .

lub

start .

aby otworzyć okno Eksploratora Windows w bieżącym katalogu.

EBGreen
źródło
1
@EBGreen, co to iiznaczy?
Pacerier
5
Po wyświetleniu monitu PowerShell możesz po prostu wpisać: Get-Command ii, a zobaczysz, że jest to alias Invoke-Item.
EBGreen,
78

Jeśli korzystasz z systemu Windows 8 lub nowszego, możesz po prostu użyć wbudowanego pliku → „Otwórz program Windows PowerShell”.

Lub Alt+, Fa następnie R.

Vivek Maharajh
źródło
1
Tak. Podpiąłem również wersję „Uruchom jako administrator”.
Vivek Maharajh,
@Andrej, jak to robisz?
Pacerier
1
@Pacerier, prawym przyciskiem myszy na odpowiedniej pozycji menu (na przykład „Otwórz Windows PowerShell”).
Andrej
@Andrej, „przypinając”, masz na myśli opcję „Dodaj do paska narzędzi szybkiego dostępu”?
Pacerier
1
@Pacerier, jestem pewien, że o to mu chodzi. Możesz także przypiąć do paska zadań. Po otwarciu kliknij prawym przyciskiem myszy ikonę na pasku zadań i przypnij ją.
Vivek Maharajh
57

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

Scott Hanselman ma naprawdę prosty inf, który zrobi to za Ciebie. Jeśli chcesz poprawić skrypt, bardzo łatwo jest przejść i edytować informacje w celu dostosowania.

Chris Sutton
źródło
Czy możesz podać podsumowanie (np. Gnicie linków jest zawsze problemem)?
Peter Mortensen
Co to jest „inf” (w tym kontekście)?
Peter Mortensen
44

Alternatywnie do powyższej odpowiedzi, która wymaga każdorazowego wpisywania polecenia PowerShell ( powershell.exe ), możesz utworzyć pozycję menu kontekstowego, tak jak w menu kontekstowym „ Otwórz okno poleceń tutaj ”.

Istnieją trzy klucze rejestru, do których idą te polecenia. Każdy klawisz kontroluje menu kontekstowe innego obiektu Eksploratora Windows. Pierwszy to ten, o który pytałeś:

  • HKCR \ Directory \ Background \ shell - To jest menu kontekstowe samego okna Eksploratora (tzn. Menu kontekstowe wyświetlane, gdy żaden element nie jest zaznaczony, na przykład po kliknięciu prawym przyciskiem myszy w pustym obszarze okna).
  • HKCR \ Directory \ shell - To jest menu kontekstowe folderów w Eksploratorze Windows.
  • HKCR \ Drive \ shell - To jest menu kontekstowe ikon dysków w katalogu głównym Eksploratora Windows.

Dla każdego z tych kluczy rejestru można dodać podklucz, który doda polecenie „Otwórz tutaj okno PowerShell” do menu kontekstowego, podobnie jak menu kontekstowe „Otwórz okno polecenia tutaj”.

Oto kopia mojego pliku OpenPowerShellHere.reg , który umieszcza polecenie w menu kontekstowym każdego z obiektów Explorer, tła okna, folderu i ikony napędu:

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

Tak więc w swoim ulubionym edytorze tekstu otwórz nowy plik o nazwie OpenPowerShellHere.reg . Skopiuj dokładny tekst powyższego kodu, wklej go do nowego pliku i zapisz. (Chciałbym załączyć kopię pliku, ale nie mogłem ustalić, czy załączniki są możliwe.) Jeśli chcesz wykluczyć polecenie z jednego z wpisów, po prostu skomentuj odpowiednią sekcję średnikami. Moje komentarze pokazują każdą sekcję.

Po zapisaniu pliku uruchom go, klikając go dwukrotnie. Gdy pojawi się pytanie, powiedz, aby kontynuował. Jak tylko go uruchomisz, pojawią się pozycje menu kontekstowego!

Oto menu kontekstowe okna Eksploratora. Podkreśliłem polecenia konsoli i programu PowerShell. Jak widać, możesz także dodać pozycję menu kontekstowego, aby uruchomić okno poleceń z podwyższonym poziomem uprawnień, tj. Uruchom jako administrator .

Wpis PowerShell w menu kontekstowym Eksploratora

Uwaga : Pozycje menu kontekstowego są wyświetlane alfabetycznie, na podstawie ich kluczy rejestru. Kluczową nazwą podniesionej powłoki poleceń jest „ runas ”, dlatego pojawia się po wpisie PowerShell.

Uwaga : Jeśli masz otwarte okno eksploratora, konieczne może być jego zamknięcie i ponowne otwarcie, aby zmiany zostały wprowadzone.

Uwaga : W systemie Windows 7 HKCR\Directory\Shellnie działa, jeśli używasz zestawu narzędzi z boku eksploratora

(tj. Klikanie dokumentów pod nagłówkiem Biblioteki)

musisz nawigować za pomocą Computer -> C: -> to -> Some -> Target -> Directory

geo
źródło
Jednym z problemów jest to, że kiedy otwieram okno PS za pomocą tego menu kontekstowego i wchodzę git help <cmd>, zrzuca plik pomocy HTML w oknie PS jako zwykły tekst. Kiedy korzystam z menu Start, to okno PS otwiera przeglądarkę tak, jak powinno.
ProfK
@ProfK, nie jestem pewien, co się tam dzieje, ponieważ nie używam „git”, jednak okno PS, które otwiera się za pomocą tego menu kontekstowego, jest identyczne z oknem PS, które otwiera się za pomocą menu Start, JEŻELI nie jesteś za pomocą programu PowerShell ISE po uruchomieniu z menu Start. W takim przypadku możesz zmienić plik „powershell.exe” w powyższym pliku rejestru na „powershell_ise.exe”. Jeśli używasz zwykłego programu PowerShell, nie ma różnicy, oprócz katalogu, w którym się uruchamiają. Polecenie menu Start rozpoczyna się w katalogu użytkownika, natomiast menu kontekstowe - w katalogu lokalnym.
geo
@ProfK, czy to możliwe, że to katalog początkowy robi różnicę? Jeśli masz coś w katalogu użytkownika na temat „git”, być może to jest różnica. Głównym celem menu kontekstowego jest otwarcie PS w katalogu LOKALNYM, ale jeśli polecenie „git” działa inaczej w zależności od katalogu, w którym się znajdujesz, może to być problem. Różnica między katalogami i różnica między PS i PS ISE to jedyne rzeczy, o których mogę myśleć.
geo
@geo Dziękuję za wszystkie opinie, ale zauważyłem, że podwójne kliknięcie plików HTML w Eksploratorze otwierało je w Notepad ++. Ustawiłem domyślną opcję „Otwórz za pomocą” na Chrome, ale jednocześnie zainstalowałem Posh-Git, a teraz moja pomoc Git otwiera się w Chrome, a nie PS. Smutną stroną jest to, że nie wiem, które zmieniły naprawione rzeczy.
ProfK
1
Skrypt PS, aby dodać monit z podwyższonym poziomem PS (usuń wiersz HasLUAShield dla nie-podniesionego) to @ powershellmagazine.com/2013/06/25/…
James Manning
33

Możesz pobrać plik inf stąd - Przedstawiamy PowerShell Monit Tutaj

Gulzar Nazim
źródło
2
Czy możesz podać podsumowanie (np. Gnicie linków jest zawsze problemem)?
Peter Mortensen
14

W systemie Windows 10 zarówno wiersz poleceń, jak i wiersz programu PowerShell można znaleźć za pomocą paska menu, zarówno dla użytkowników niebędących administratorami, jak i administratorów. Te opcje będą miały ustawiony folder na aktualnie wybrany folder z Eksploratora.

Przynajmniej dla wersji szwedzkiej PowerShell jest otwierany za pomocą Alt F+I. Dla administratora PowerShell to Alt F+S+P.

Menu Windows PowerShell

Jeśli nie są to prawidłowe znaki, możesz nacisnąć i przytrzymać Altklawisz, aby zobaczyć prawidłowe znaki. dla każdego kroku pojawi się znak nakładający się na pozycję menu.

Domyślna
źródło
2
Jest to [Alt] [F + S + A] dla PowerShell administratora na moim Windows 10 (wersja angielska)
Rosdi Kasim
6

Chciałem, aby to menu kontekstowe działało tylko po kliknięciu i przytrzymaniu klawisza „SHIFT”, jak działa wbudowane menu kontekstowe „Otwórz okno poleceń tutaj”.

Jednak żadne z dostarczonych rozwiązań tego nie zrobiło, więc musiałem rzucić własny .regplik - skopiuj poniższy plik, zapisz go jako power-shell-here-on-shift.regi kliknij dwukrotnie.

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

tutaj otwórz skorupę mocy, przytrzymując Shift i naciskając prawy przycisk myszy

Daniel Sokołowski
źródło
5

Wypróbuj PowerShell PowerToy ... Dodaje tutaj pozycję menu kontekstowego dla Open PowerShell .

Lub możesz utworzyć skrót, który otwiera PowerShell z folderem Start In będącym folderem Projekty.

Steven Murawski
źródło
3

Jest to jeszcze łatwiejsze w Windows 8.1 i Server 2012 R2.

Zrób to raz: kliknij pasek zadań prawym przyciskiem myszy, wybierz Właściwości. W zakładce nawigacji włączyć [✓] Wymienić wiersza polecenia Windows PowerShell w menu kiedy prawym przyciskiem myszy w lewym dolnym rogu lub naciśnij klawisz Windows + X .

Wtedy, gdy chcesz PowerShell szybką, uderzyć Win+X, I. (Lub Win+X, Adla monitu PowerShell administratora)

Warren Rumak
źródło
4
Fajny skrót, jednak nie uruchamia PowerShell w bieżącym folderze.
steenhulthin
3

Poniżej znajduje się zwięzłe (i zaktualizowane) podsumowanie wcześniejszych rozwiązań. Oto co robić:

Dodaj te ciągi i odpowiadające im klucze nadrzędne:

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

w tych lokalizacjach

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

Otóż ​​to. Dodaj ciągi „rozszerzone”, aby polecenia były widoczne tylko po przytrzymaniu klawisza „Shift”, wszystko inne jest zbędne.

ppw0
źródło
3

Jest rozszerzenie Eksploratora Windows wykonane przez gościa, który tworzy narzędzia dla SVN, które przynajmniej otworzą okno wiersza polecenia.

Nie próbowałem tego jeszcze, więc nie wiem, czy to zrobi PowerShell, ale chciałem podzielić się miłością z moimi braćmi Stack Overflow:

http://tools.tortoisesvn.net/StExBar

Josh Kodroff
źródło
2

Inną opcją są doskonałe narzędzia Elevation PowerToys autorstwa Michaela Murgolo w witrynie TechNet pod adresem http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx .

Obejmują one Monituj o PowerShell tutaj i Monituj o PowerShell tutaj jako administrator.

Mark Larson
źródło
Chociaż ten link może odpowiedzieć na pytanie, lepiej jest dołączyć tutaj istotne części odpowiedzi i podać link w celach informacyjnych. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie.
Lundin
Jest to ważna kwestia do rozważenia przy publikowaniu linku; jednak powiązany artykuł zawiera autorytatywne pobieranie do narzędzia Elevation PowerToys, które jest zasadniczą częścią odpowiedzi.
Mark Larson
2

Dodając poniższe klucze rejestru, w Windows 10 udało mi się uzyskać opcję Otwórz PowerShell tutaj w SHIFT + RClickmenu kontekstowych. Po prostu skopiuj je do pustego pliku notatnika, a następnie zapisz jako .regplik i uruchom plik, aby dodać klucz. Powinien on działać od tego momentu. Niektóre z tych innych odpowiedzi mówią, że należy dodać klucz do HKCR \ Directory \ shell, ale okazało się, że dla mnie działało to tylko z kluczami wchodzącymi do 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'"
Rhys
źródło
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."
}

Możesz pobrać szczegółowy skrypt z uruchamiania programu PowerShell z Eksploratora Windows

szczera opalenizna
źródło
1

Jedną dość prostą alternatywą jest wywołanie programu PowerShell za pomocą skrótu. Istnieje właściwość skrótu oznaczona „Rozpocznij w”, która mówi, jakiego katalogu (folderu) użyć, gdy skrót zostanie wywołany.

Jeśli pole Rozpocznij w jest puste, oznacza to użycie bieżącego katalogu.

Po pierwszym utworzeniu skrótu do programu PowerShell w zwykły sposób, pole początkowe określa katalog domowy. Jeśli wyczyścisz pole „Rozpocznij w”, masz teraz skrót do programu PowerShell, który otwiera PS w bieżącym katalogu, cokolwiek to jest.

Jeśli teraz skopiujesz ten skrót do katalogu docelowego i użyjesz Eksploratora, aby go wywołać, uruchomisz PS wskazujący na katalog docelowy.

Odpowiedź na to pytanie jest już zaakceptowana, ale proponuję to jako inny sposób.

Walter Mitty
źródło
1

Dla użytkowników korzystających z auto-klucza, oto fragment, którego używam

Po naciśnięciu otwiera okno programu PowerShell Ctrl-Alt-T. (Testowane z Win10)

Jeśli „aktywne okno” to okno Eksploratora Windows, wówczas PowerShell zostanie otwarty w bieżącym folderze . W przeciwnym razie po prostu otwórz PowerShell w folderze domyślnym .

Sposób użycia: 1) Zainstaluj AutoHotkey i skopiuj to wklej do myscript.ahk 2) Zastąp <DefaultPath>wybraną ścieżką. 3) Uruchom skrypt.

; 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
źródło
1

Dziwię się, że nikt nie podał tej odpowiedzi, jest ona najprostsza. (Musi być rok.)

Wystarczy Shift + kliknięcie prawym przyciskiem myszy w Eksploratorze. Następnie możesz „Otwórz okno PowerShell tutaj”.

Domyślnie może być ustawiony na Wiersz polecenia. Jeśli tak, możesz to zmienić w Ustawieniach systemu Windows 10: przejdź do Personalizacja -> Pasek zadań i włącz „Zamień wiersz polecenia na Windows PowerShell w menu, kiedy kliknę prawym przyciskiem myszy przycisk Start lub naciśnij klawisz Windows + X”.

Andrzej
źródło
1

Windows 10 znacznie to ułatwił. Możesz albo:

  • [SHIFT] + [Kliknij prawym przyciskiem myszy] na folderze, a otrzymasz element menu Open PowerShell window here.

Lub możesz:

  • File-> Open Windows PowerShell.

I za bonus ...

Jeśli klikniesz prawym przyciskiem myszy File-> Open Windows PowerShell, możesz Add to Quick Access Toolbar:

wprowadź opis zdjęcia tutaj

Co umieszcza tutaj przydatną ikonę:

wprowadź opis zdjęcia tutaj

A teraz możesz po prostu kliknąć tę ikonę. :)

Craigo
źródło