Использовать Powershell Core 6 в качестве оболочки по умолчанию с сочетанием клавиш Windows+X, I

Использовать Powershell Core 6 в качестве оболочки по умолчанию с сочетанием клавиш Windows+X, I

я виделэтот вопросчто не совсем одно и то же. У меня установлен Powershell Core 6. Обычно я открываю Powershell сочетанием клавиш Windows+ X, а затем I. Теперь я хочу, чтобы это сочетание клавиш открывало Powershell Core 6 вместо старого Powershell 5. Это возможно?

решение1

Или просто воспользуйтесь новым терминалом Windows и добавьте все, что пожелаете.

Windows Terminal (предварительная версия)

Windows Terminal — это новое, современное, быстрое, эффективное, мощное и производительное терминальное приложение для пользователей инструментов командной строки и оболочек, таких как Command Prompt, PowerShell и WSL. Его основные функции включают в себя несколько вкладок, поддержку символов Unicode и UTF-8, ускоренный GPU-движок рендеринга текста и пользовательские темы, стили и конфигурации.

Это проект с открытым исходным кодом, и мы приветствуем участие сообщества. Чтобы принять участие, посетитеhttps://github.com/microsoft/terminal

Обновление на основе комментариев, полученных на данный момент.

Вы не можете сделать то, что вам нужно, изначально. Вам нужно взломать реестр, чтобы изменить это.

Но зачем прилагать все эти усилия, если можно просто закрепить ярлык pwsh на первой позиции на панели задач, а затем просто нажать клавишу Win + 1 (или там, где вы его поместили на позицию 9) на панели задач.

Например, на моей панели задач в позициях 1,2,3,4,5,6 расположены Windows Terminal, pwsh, powershell, powershell_ISE, VSCode, PowerShellStudio.

введите описание изображения здесь

Итак, нажатие Win+# запускает приложение. Не требуется взлома реестра и 2 нажатия клавиш вместо 3. Можно даже отказаться от pwsh, так как он включен в качестве опции в Windows Terminal, если у вас установлены Windows Terminal и pswh. введите описание изображения здесь

решение2

Используйте этот инструмент, который позволяет редактировать меню Win+X: https://winaero.com/download-winx-menu-editor-allows-you-to-add-or-remove-winx-menu-items

Скриншот

Здесь есть несколько групп. Добавьте его в любую группу, которая вам нравится, используя кнопку добавления программы. А затем нажмите «Перезапустить проводник» (ПРИМЕЧАНИЕ: это закроет все окна проводника!)

решение3

Другим вариантом предложения @vssher было бы использованиеConEmuилиТерминал Майкрософт.
Чтобы установить в качестве терминала по умолчанию:


Чтобы настроить горячую клавишу для запуска Pwsh.exeв ConEmu:

  1. НастройкиЗапускатьЗадания:Предопределенные задачи (группа команд)
  2. +значок или используйте значок ConEmu по умолчанию [ Shells::PowerShell Core]
    1. Имя (показывает Group <#>): Powershell::Pwsh
    2. Горячая клавиша:Выберите то, что вам нравится
    3. Задача по умолчанию для новой консоли:Оболочка по умолчанию при каждом открытии ConEmu
    4. Списки переходов на панели задач:Добавляет эту задачу в список переходов на панели задач ConEmu.
    5. Оболочка по умолчанию (Win+X):
      • Windows 10:Делает это значением по умолчанию в меню Win+X
      • Windows 11:Не влияет на Win+ Xменю
        • Хотя меню Win«+» Xможно было бы изменить вручную в Win <11, в 11 оно приводит к повреждению (если кто-то знает способ, не приводящий к повреждению, пожалуйста, напишите в комментариях, и я внесу изменения).
    6. Параметры задачи:Ничего не требуется, но можно настроить
    7. Команды:
      pwsh.exe -NoExit -Command "Import-Module C:\Users\<username>\WindowsPowerShell\profile.ps1" -new_console:t:"Pwsh"
      
      • Для запуска в качестве терминала администратора добавьте a:перед t::-new_console:a:t:"Pwsh"
      • -Import-Moduleнеобязательно, но позволяет настраивать подсказку в 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


Чтобы импортироватьConEmu.xmlКонфигурация, которую я использую:

  1. Кнопка загрузки GitHub:Загрузить необработанный файл→ Открыть в текстовом редакторе
  2. Найти/Заменить <username>на%UserProfile% имя папки→ Сохранить изменения
  3. Импорт через ConEmu Настройки: WinKey+ Alt+ PImport...Save settings

решение4

Это обходной путь, которым я сейчас пользуюсь.

Если вы используете PowerShell $PROFILE, вы можете вставить строку pwsh.exeв начало скрипта. Любые ярлыки Windows для запуска PowerShell будут эффективно подключаться кPowerShell6косвенно как дочерний процессPowerShell5.

Связанный контент