Поиск по сайту:

PowerShell: Изменение внешнего вида подсказки


PowerShell поставляется со стандартным приглашением, конфигурация которого хранится в функции приглашения. Хорошая новость заключается в том, что мы можем изменить эту функцию приглашения в соответствии с нашими потребностями. В этом посте блога я покажу вам, как вы можете изменить это приглашение, и приведу вам несколько примеров.

Тема

Мы исследуем эту тему:

И мы также изучаем функцию, которая связана с этим стандартным запросом:

(Get-Item function:prompt).ScriptBlock

Это стандартный запрос. Для настройки нам нужно изменить этот стандартный запрос.

Изменение внешнего вида подсказки

Вот 4 примера, которые вы можете использовать для своего запроса или для дальнейшей настройки.

Показ даты

function prompt {

    "$(Get-Date)> "

}

Стандартный запрос + Имя компьютера

function prompt {

    "PS [$env:COMPUTERNAME]> "

}

Если PowerShell запущен от имени администратора, то показать [Администратор]

function prompt {
    $identity = [Security.Principal.WindowsIdentity]::GetCurrent()
    $principal = [Security.Principal.WindowsPrincipal] $identity
    $adminRole = [Security.Principal.WindowsBuiltInRole]::Administrator
  
    $(if (Test-Path variable:/PSDebugContext) { '[DBG]: ' }
      elseif($principal.IsInRole($adminRole)) { "[ADMINISTRATOR]: " }
      else { '' }
    ) + 'PS ' + $(Get-Location) +
      $(if ($NestedPromptLevel -ge 1) { '>>' }) + '> '
  }

Показ имени пользователя

function prompt {

  "PS [$env:USERNAME]> "

}

Я надеюсь, что смог дать вам несколько идей о том, как изменить подсказку вашей сессии PowerShell.

Больше информации о подсказках здесь: https://docs.microsoft.com/ru-ru/powershell/module/microsoft.powershell.core/about/about_prompts?view=powershell-7.2#:~:text=Функция%20Prompt%20определяет%20подсказку%20для,определяя%20свою%20собственную%20функцию%20Prompt.&text=Функция%20Prompt%20должна%20возвращать,%20форматированную%20как%20строку.

Если вы задаетесь вопросом, как вы можете навсегда внедрить свой собственный запрос, посмотрите мою статью о профилях PowerShell: Как создать профили PowerShell

Статьи по данной тематике