Verwenden Sie Powershell Core 6 als Standard-Shell mit der Tastenkombination Windows+X, I

Verwenden Sie Powershell Core 6 als Standard-Shell mit der Tastenkombination Windows+X, I

Ich habe gesehendiese Fragewas nicht ganz dasselbe ist. Ich habe Powershell Core 6 installiert. Normalerweise öffne ich Powershell mit der Tastenkombination Windows+ Xund dann I. Jetzt möchte ich, dass diese Tastenkombination Powershell Core 6 statt der alten Powershell 5 öffnet. Ist das möglich?

Antwort1

Oder verwenden Sie einfach das neue Windows-Terminal und fügen Sie hinzu, was Sie möchten.

Windows Terminal (Vorschau)

Das Windows Terminal ist eine neue, moderne, schnelle, effiziente, leistungsstarke und produktive Terminalanwendung für Benutzer von Befehlszeilentools und Shells wie Eingabeaufforderung, PowerShell und WSL. Zu den Hauptfunktionen gehören mehrere Registerkarten, Unicode- und UTF-8-Zeichenunterstützung, eine GPU-beschleunigte Textwiedergabe-Engine sowie benutzerdefinierte Designs, Stile und Konfigurationen.

Dies ist ein Open-Source-Projekt und wir begrüßen die Teilnahme der Community. Um teilzunehmen, besuchen Sie bittehttps://github.com/microsoft/terminal

Aktualisierung basierend auf den bisherigen Kommentaren.

Sie können das Gewünschte nicht nativ tun. Um dies zu ändern, müssen Sie die Registrierung hacken.

Doch warum sollte man sich all diese Mühe machen, wenn man die Verknüpfung „pwsh“ einfach an die erste Position auf der Taskleiste anheften und dann einfach die Windows-Taste + 1 (oder wo auch immer man sie an Position 9 platziert) auf der Taskleiste drücken kann?

Beispielsweise habe ich in meiner Taskleiste Windows Terminal, pwsh, powershell, powershell_ISE, VSCode, PowerShellStudio an den Positionen 1,2,3,4,5,6.

Bildbeschreibung hier eingeben

Durch Drücken von Win+# wird die App gestartet. Kein Registrierungshacking erforderlich und 2 statt 3 Tastenanschläge. Man könnte sogar auf pwsh verzichten, da es als Option in Windows Terminal enthalten ist, wenn Sie Windows Terminal und pswh installiert haben. Bildbeschreibung hier eingeben

Antwort2

Verwenden Sie dieses Tool, mit dem Sie das Win+X-Menü bearbeiten können: https://winaero.com/download-winx-menu-editor-ermöglicht-es-ihnen-das-hinzufügen-oder-entfernen-von-winx-menu-items

Bildschirmfoto

Hier gibt es einige Gruppen. Fügen Sie es mit der Schaltfläche „Programm hinzufügen“ zu einer beliebigen Gruppe hinzu. Und drücken Sie dann „Explorer neu starten“ (HINWEIS: Dadurch werden alle Datei-Explorer-Fenster geschlossen!)

Antwort3

Eine weitere Option zu @vsshers Vorschlag wäre die VerwendungConEmuoderMicrosoft Terminal.
So legen Sie das Terminal als Standard fest:


So konfigurieren Sie den Hotkey zum Starten Pwsh.exein ConEmu:

  1. EinstellungenStart-upAufgaben:Vordefinierte Aufgaben (Befehlsgruppe)
  2. +Symbol oder verwenden Sie ConEmus Standard [ Shells::PowerShell Core]
    1. Name (zeigt an Group <#>): Powershell::Pwsh
    2. Tastenkombination:Wählen Sie aus, was Sie möchten
    3. Standardaufgabe für neue Konsole:Standard-Shell beim Öffnen von ConEmu
    4. Sprunglisten in der Taskleiste:Fügt diese Aufgabe zur Jumplist der ConEmu-Taskleiste hinzu.
    5. Standard-Shell (Win+X):
      • Windows 10:Macht dies zum Standard im Win+ XMenü
      • Windows 11:Beeinflusst nicht das Win+ XMenü
        • Obwohl das Win+ X-Menü in Windows <11 auch manuell geändert werden kann, führt es in 11 zu Beschädigungen (wenn jemand eine Methode kennt, die nicht zu Beschädigungen führt, hinterlassen Sie bitte einen Kommentar, und ich werde dies ändern).
    6. Aufgabenparameter:Keine sind erforderlich, können aber angepasst werden
    7. Befehle:
      pwsh.exe -NoExit -Command "Import-Module C:\Users\<username>\WindowsPowerShell\profile.ps1" -new_console:t:"Pwsh"
      
      • Zum Starten als Admin-Terminal fügen Sie a:vorher Folgendes hinzu t::-new_console:a:t:"Pwsh"
      • -Import-Moduleist optional, ermöglicht aber die Anpassung der Eingabeaufforderung in profile.ps1:
        #
        
        # ===========================================================
                ##::[[--- Powershell PS1 Profile ---]]::##
        # ===========================================================
        
          # Microsoft.PowerShell_profile.ps1 || Profile.ps1:
            # %UserProfile%\Documents\WindowsPowerShell
            # $env:UserProfile\Documents\WindowsPowerShell
        
        # ================================================================
        
            # Variables
        #----------------------------------------------------------------
        # ANSI:
          $ESC                              = [char]27
        
        # Host.PrivateData:
          $PD                               = $($Host.PrivateData)
        
        # Colors: 
          $Host.UI.RawUI.BackgroundColor    = ($bckgrnd = 'Black')
          $Host.UI.RawUI.ForegroundColor    = 'Gray'
        
          $PD.ErrorForegroundColor          = 'Red'
          $PD.ErrorBackgroundColor          = $bckgrnd
        
          $PD.WarningForegroundColor        = 'Magenta'
          $PD.WarningBackgroundColor        = $bckgrnd
        
          $PD.DebugForegroundColor          = 'Yellow'
          $PD.DebugBackgroundColor          = $bckgrnd
        
          $PD.VerboseForegroundColor        = 'Green'
          $PD.VerboseBackgroundColor        = $bckgrnd
        
          $PD.ProgressForegroundColor       = 'Yellow'
          $PD.ProgressBackgroundColor       = $bckgrnd
        
        #================================================================
        
            # Functions
        #----------------------------------------------------------------
        
        # Prompt:
          Function set-prompt {
            Param (
              [Parameter(Position=0)]
              [ValidateSet("Default","Test")]
              $Action
            )
        
            switch ($Action) {
              "Default" {
                Function global:prompt {
                  if (test-path variable:/PSDebugContext) { '[DBG]: ' }
                    write-host " "
                    write-host ("$ESC[48;2;40;40;40m$ESC[38;2;170;210;0m$(Get-Location) $ESC[0m $ESC[0m")
        
                  if ( $host.UI.RawUI.WindowTitle -match "Administrator" ) {
                    $Host.UI.RawUI.ForegroundColor = 'Red'
                    $(if ($nestedpromptlevel -ge 1) {
                      write-host ('PS $$ ') -ForegroundColor Red -NoNewLine
                    } else {
                      write-host ('PS $ ') -ForegroundColor Red -NoNewLine
                    })
                  } else {
                    $(if ($nestedpromptlevel -ge 1) {
                      write-host ('PS $$ ') -ForegroundColor Blue -NoNewLine
                    } else {
                      write-host ('PS $ ') -ForegroundColor Blue -NoNewLine
                    })
                  }
        
                  return " "
                }
              }
            }
          }
        
          set-prompt Default
        
        # Relaunch as Admin:
          function Relaunch-Admin { Start-Process -Verb RunAs wt }
          Set-Alias psa Relaunch-Admin
        
  3. Save settings


Zum Importieren derConEmu.xmlKonfiguration die ich verwende:

  1. GitHub-Download-Schaltfläche:RAW-Datei herunterladen→ Im Texteditor öffnen
  2. Suchen/Ersetzen <username>mit dem%UserProfile% Ordnernamen→ Änderungen speichern
  3. Importieren über ConEmu-Einstellungen: WinKey+ Alt+ PImport...Save settings

Antwort4

Dies ist ein Workaround, den ich derzeit verwende.

Wenn Sie PowerShell verwenden , können Sie am Anfang des Skripts $PROFILEeine Zeile einfügen . Alle Windows-Tastenkombinationen zum Starten von PowerShell werden effektiv inpwsh.exePowerShell 6indirekt als Kindprozess vonPowerShell 5.

verwandte Informationen