Utilice Powershell Core 6 como shell predeterminado con el acceso directo Windows+X, I

Utilice Powershell Core 6 como shell predeterminado con el acceso directo Windows+X, I

He vistoesta preguntaque no es exactamente lo mismo. Tengo Powershell Core 6 instalado. Normalmente abro Powershell con el atajo Windows+ Xy luego I. Ahora me gustaría que ese acceso directo abra Powershell Core 6 en lugar del antiguo Powershell 5. ¿Es eso posible?

Respuesta1

O simplemente use la nueva Terminal de Windows y agregue lo que elija.

Terminal de Windows (vista previa)

Windows Terminal es una aplicación de terminal nueva, moderna, rápida, eficiente, potente y productiva para usuarios de herramientas de línea de comandos y shells como Command Prompt, PowerShell y WSL. Sus características principales incluyen múltiples pestañas, compatibilidad con caracteres Unicode y UTF-8, un motor de representación de texto acelerado por GPU y temas, estilos y configuraciones personalizados.

Este es un proyecto de código abierto y damos la bienvenida a la participación de la comunidad. Para participar por favor visitehttps://github.com/microsoft/terminal

Actualización basada en los comentarios hasta el momento.

No puedes hacer lo que buscas de forma nativa. Tienes que hackear el registro para cambiar esto.

Sin embargo, ¿por qué hacer todo ese esfuerzo, cuando puedes fijar el acceso directo pwsh en la primera posición de tu barra de tareas y luego simplemente presionar la tecla Win + 1 (o donde lo colocaste en la posición 9) en la barra de tareas?

Por ejemplo, en mi barra de tareas tengo Windows Terminal, pwsh, powershell, powershell_ISE, VSCode, PowerShellStudio en la posición 1,2,3,4,5,6.

ingrese la descripción de la imagen aquí

Entonces, al presionar Win+#, se inicia la aplicación. No se requiere pirateo de registros y 2 pulsaciones de teclas frente a 3. Incluso se podría eliminar el pwsh, ya que está incluido como una opción en Windows Terminal si tiene Windows Terminal y pswh instalados. ingrese la descripción de la imagen aquí

Respuesta2

Utilice esta herramienta que le permite editar el menú Win+X: https://winaero.com/download-winx-menu-editor-allows-you-to-add-or-remove-winx-menu-items

Captura de pantalla

Aquí hay algunos grupos. Agréguelo al grupo que desee usando el botón Agregar un programa. Y luego, presione Reiniciar Explorador (NOTA: ¡Esto cerrará todas las ventanas del explorador de archivos!)

Respuesta3

Otra opción a la sugerencia de @vssher sería usarConEmuoTerminal de Microsoft.
Para establecerlo como terminal predeterminado:


Para configurar la tecla de acceso rápido para iniciar Pwsh.exeen ConEmu:

  1. AjustesPuesta en marchaTareas:Tareas predefinidas (grupo de comandos)
  2. +icono o utilice el valor predeterminado de ConEmu [ Shells::PowerShell Core]
    1. Nombre (muestra Group <#>): Powershell::Pwsh
    2. Tecla de acceso rápido:Selecciona lo que quieras
    3. Tarea predeterminada para la nueva consola:Shell predeterminado cada vez que abres ConEmu
    4. Listas de salto de la barra de tareas:Agrega esta tarea a la lista de salto de la barra de tareas de ConEmu
    5. Shell predeterminado (Win+X):
      • Ventanas 10:Hace que esto sea el predeterminado en el menú Win+.X
      • Ventanas 11:No afecta al menú Win+X
        • Si bien el menú Win+ Xtambién se puede modificar manualmente en Win <11, causa corrupción en 11 (si alguien conoce una forma que no resulte en corrupción, comente y lo modificaré)
    6. Parámetros de la tarea:No se necesita ninguno, pero se puede personalizar.
    7. Comandos:
      pwsh.exe -NoExit -Command "Import-Module C:\Users\<username>\WindowsPowerShell\profile.ps1" -new_console:t:"Pwsh"
      
      • Para iniciar como terminal de administración, agregue a:antes t::-new_console:a:t:"Pwsh"
      • -Import-Modulees opcional, pero permite la personalización del mensaje en 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


Para importar elConEmu.xmlconfiguración que uso:

  1. Botón de descarga de GitHub:Descargar archivo sin formato→ Abrir en el editor de texto
  2. Buscar/Reemplazar <username>con el%UserProfile% nombre de la carpeta→ Guardar cambios
  3. Importar a través de Configuración de ConEmu: WinKey+ Alt+ PImport...Save settings

Respuesta4

Esta es una solución alternativa que estoy usando actualmente.

Si usa PowerShell $PROFILE, puede insertar una línea pwsh.exeal comienzo del script. Cualquier acceso directo de Windows para iniciar PowerShell se conectará efectivamentePowerShell 6indirectamente como un proceso hijo dePowerShell 5.

información relacionada