Use Powershell Core 6 como shell padrão com atalho Windows + X, I

Use Powershell Core 6 como shell padrão com atalho Windows + X, I

eu tenho vistoessa questãoo que não é exatamente a mesma coisa. Eu tenho o Powershell Core 6 instalado. Normalmente abro o Powershell com o atalho Windows+ Xe depois I. Agora eu gostaria que esse atalho abrisse o Powershell Core 6 em vez do antigo Powershell 5. Isso é possível?

Responder1

Ou apenas use o novo Terminal do Windows e adicione o que quiser.

Terminal do Windows (visualização)

O Terminal do Windows é um aplicativo de terminal novo, moderno, rápido, eficiente, poderoso e produtivo para usuários de ferramentas de linha de comando e shells como Prompt de Comando, PowerShell e WSL. Seus principais recursos incluem várias guias, suporte a caracteres Unicode e UTF-8, um mecanismo de renderização de texto acelerado por GPU e temas, estilos e configurações personalizados.

Este é um projeto de código aberto e aceitamos a participação da comunidade. Para participar acessehttps://github.com/microsoft/terminal

Atualização com base nos comentários até agora.

Você não pode fazer o que deseja nativamente. Você tem que hackear o registro para mudar isso.

No entanto, por que fazer todo esse esforço, quando você pode simplesmente fixar o atalho pwsh na primeira posição da barra de tarefas e, em seguida, pressionar a tecla Win + 1 (ou onde você o colocou na posição 9) na barra de tarefas.

Por exemplo, na minha barra de tarefas, tenho Windows Terminal, pwsh, powershell, powershell_ISE, VSCode, PowerShellStudio na posição 1,2,3,4,5,6.

insira a descrição da imagem aqui

Então, pressionando Win+#, inicia o aplicativo. Não é necessário hackear o registro e 2 pressionamentos de tecla versus 3. Pode-se até descartar o pwsh, pois ele está incluído como uma opção no Terminal do Windows se você tiver o Terminal do Windows e o pswh instalados. insira a descrição da imagem aqui

Responder2

Use esta ferramenta que permite editar o menu Win+X: https://winaero.com/download-winx-menu-editor-permite-você-adicionar-ou-remover-winx-menu-items

Captura de tela

Aqui, existem alguns grupos. Adicione-o a qualquer grupo de sua preferência usando o botão Adicionar um programa. E então, pressione Reiniciar Explorer (NOTA: Isso fechará todas as janelas do explorador de arquivos!)

Responder3

Outra opção à sugestão de @vssher seria usarConEmuouTerminal Microsoft.
Para definir como terminal padrão:


Para configurar a tecla de atalho para iniciar Pwsh.exeno ConEmu:

  1. ConfiguraçõesComeceTarefas:Tarefas predefinidas (grupo de comando)
  2. +ícone ou use o padrão do ConEmu [ Shells::PowerShell Core]
    1. Nome (mostra Group <#>): Powershell::Pwsh
    2. Tecla de atalho:Selecione o que você quiser
    3. Tarefa padrão para o novo console:Shell padrão sempre que você abre o ConEmu
    4. Listas de atalhos da barra de tarefas:Adiciona esta tarefa à lista de atalhos da barra de tarefas do ConEmu
    5. Concha padrão (Win+X):
      • Janelas 10:Torna isso o padrão no menu Win+X
      • Janelas 11:Não afeta Win+ Xmenu
        • Embora o menu Win+ Xtambém possa ser modificado manualmente no Win <11, ele causa corrupção no 11 (se alguém souber de uma maneira que não resulte em corrupção, comente e eu modificarei isso)
    6. Parâmetros da tarefa:Nenhum é necessário, mas pode ser personalizado
    7. Comandos:
      pwsh.exe -NoExit -Command "Import-Module C:\Users\<username>\WindowsPowerShell\profile.ps1" -new_console:t:"Pwsh"
      
      • Para iniciar como um terminal de administração, adicione a:antes t::-new_console:a:t:"Pwsh"
      • -Import-Moduleé opcional, mas permite a personalização do prompt em 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 oConEmu.xmlconfiguração que eu uso:

  1. Botão de download do GitHub:Baixe o arquivo bruto→ Abrir no editor de texto
  2. Localizar/Substituir <username>pelo%UserProfile% nome da pasta→ Salvar alterações
  3. Importar via configurações do ConEmu: WinKey+ Alt+ PImport...Save settings

Responder4

Esta é uma solução alternativa que estou usando atualmente.

Se você usar o PowerShell $PROFILE, poderá inserir uma linha pwsh.exeno início do script. Quaisquer atalhos do Windows para iniciar o PowerShell serão efetivamente conectadosPowerShell 6indiretamente como um processo filho dePowerShell5.

informação relacionada