Откройте окно powershell здесь, что это в автозагрузке
Обновлено: 21.11.2024
Интерфейс командной строки AWS (AWS CLI) включает совместимую с bash функцию завершения команды, которая позволяет использовать клавишу Tab для завершения частично введенной команды. В большинстве систем вам необходимо настроить это вручную.
Дополнительную информацию о функции автоподсказки AWS CLI версии 2 см. в разделе Запрос команд в AWS CLI.
Темы
Как это работает
Когда вы частично вводите команду, параметр или параметр, функция завершения команды либо автоматически завершает вашу команду, либо отображает предлагаемый список команд. Чтобы запросить завершение команды, вы частично вводите команду и нажимаете клавишу завершения, которой обычно является Tab в большинстве оболочек.
В следующих примерах показаны различные способы использования завершения команд:
Частично введите команду и нажмите клавишу Tab, чтобы отобразить предлагаемый список команд.
Частично введите параметр и нажмите клавишу Tab, чтобы отобразить предлагаемый список параметров.
Введите параметр и нажмите клавишу Tab, чтобы отобразить предлагаемый список значений ресурсов. Эта функция доступна только в AWS CLI версии 2.
Настройка завершения команд в Linux или macOS
Чтобы настроить завершение команд в Linux или macOS, необходимо знать имя используемой оболочки и расположение скрипта aws_completer.
Автозавершение команд автоматически настраивается и включается по умолчанию на инстансах Amazon EC2, работающих под управлением Amazon Linux.
Темы
Подтвердите, что папка завершающего файла указана на вашем пути
Чтобы средство завершения AWS работало успешно, aws_completer должен находиться в пути к вашей оболочке. Команда which может проверить, находится ли средство завершения на вашем пути.
Если команда which не может найти средство завершения, выполните следующие действия, чтобы добавить папку средства завершения в свой путь.
Шаг 1. Найдите средство завершения AWS
Расположение AWS Completer может различаться в зависимости от используемого метода установки.
Диспетчер пакетов. Такие программы, как pip , yum , brew и apt-get, обычно устанавливают средство завершения AWS (или символическую ссылку на него) по стандартному пути.
Если вы использовали pip без параметра --user, путь по умолчанию — /usr/local/bin/aws_completer .
Если вы использовали pip с параметром --user, путь по умолчанию — /home/username /.local/bin/aws_completer .
Комплектный установщик. Если вы использовали пакетный установщик, путь по умолчанию — /usr/local/bin/aws_completer .
Если ничего не помогает, вы можете использовать команду find для поиска в вашей файловой системе средства завершения AWS.
Шаг 2. Определите свою оболочку
Чтобы определить, какую оболочку вы используете, вы можете использовать одну из следующих команд.
echo $SHELL — отображает имя файла программы оболочки. Обычно оно соответствует имени используемой оболочки, если только вы не запустили другую оболочку после входа в систему.
ps — отображает процессы, запущенные для текущего пользователя. Одним из них является оболочка.
Шаг 3. Добавьте завершающий элемент к вашему пути
Найдите скрипт профиля вашей оболочки в папке пользователя.
Bash– .bash_profile , .profile или .bash_login
Tcsh– .tcshrc , .cshrc или .login
Добавьте команду экспорта в конец сценария профиля, как показано в следующем примере. Замените /usr/local/bin/ на папку, которую вы обнаружили в предыдущем разделе.
Перезагрузите профиль в текущий сеанс, чтобы изменения вступили в силу. Замените .bash_profile именем сценария оболочки, который вы обнаружили в первом разделе.
Включить завершение команды
Убедившись, что средство завершения находится в вашем пути, включите завершение команды, выполнив соответствующую команду для используемой оболочки. Вы можете добавить команду в профиль вашей оболочки, чтобы запускать ее каждый раз, когда вы открываете новую оболочку. В каждой команде замените путь /usr/local/bin/ на путь, найденный в вашей системе, в разделе Подтвердите, что папка компоновщика находится на вашем пути.
bash — используйте встроенную команду complete .
Добавьте предыдущую команду в ~/.bashrc, чтобы запускать ее каждый раз при открытии новой оболочки. Ваш ~/.bash_profile должен содержать ~/.bashrc, чтобы команда также запускалась в оболочках входа в систему.
zsh — чтобы выполнить завершение команды, необходимо запустить bashcompinit, добавив следующую строку автозагрузки в конец сценария профиля ~/.zshrc.
Чтобы включить завершение команды, используйте встроенную команду complete .
Добавьте предыдущие команды в ~/.zshrc, чтобы запускать их каждый раз, когда вы открываете новую оболочку.
tcsh — Complete for tcsh использует тип слова и шаблон для определения поведения завершения.
Добавьте предыдущую команду в ~/.tschrc, чтобы запускать ее каждый раз, когда вы открываете новую оболочку.
После того, как вы включили автозавершение команды, проверьте, работает ли завершение команды.
Проверить выполнение команды
После включения завершения команд перезагрузите оболочку, введите частичную команду и нажмите клавишу Tab, чтобы просмотреть доступные команды.
Настройка завершения команд в Windows
Информацию о том, как PowerShell обрабатывает их завершение, включая различные ключи завершения, см. в разделе about_Tab_Expansion в Документации Microsoft PowerShell.
Чтобы включить завершение команд для PowerShell в Windows, выполните следующие действия в PowerShell.
Откройте свой $PROFILE с помощью следующей команды.
Если у вас нет $PROFILE , создайте профиль пользователя с помощью следующей команды.
Чтобы включить завершение команд, добавьте следующий блок кода в свой профиль, сохраните и закройте файл.
После включения автозавершения команд перезагрузите оболочку, введите частичную команду и нажмите клавишу Tab, чтобы просмотреть доступные команды.
Чтобы увидеть все доступные команды для завершения, введите частичную команду и нажмите Ctrl + пробел.
Объясняет, как устанавливать, импортировать и использовать модули PowerShell.
Подробное описание
Модуль — это пакет, содержащий элементы PowerShell, такие как командлеты, поставщики, функции, рабочие процессы, переменные и псевдонимы.
Люди, которые пишут команды, могут использовать модули для организации своих команд и обмена ими с другими. Люди, получившие модули, могут добавлять команды из модулей в свои сеансы PowerShell и использовать их точно так же, как встроенные команды.
В этом разделе объясняется, как использовать модули PowerShell. Сведения о том, как писать модули PowerShell, см. в разделе Написание модуля PowerShell.
Что такое модуль?
Модуль — это пакет, содержащий элементы PowerShell, такие как командлеты, поставщики, функции, рабочие процессы, переменные и псевдонимы. Члены этого пакета могут быть реализованы в сценарии PowerShell, скомпилированной библиотеке DLL или в комбинации того и другого. Эти файлы обычно группируются в одном каталоге. Дополнительные сведения см. в разделе Общие сведения о модуле Windows PowerShell в документации SDK.
Автозагрузка модуля
Начиная с PowerShell 3.0, PowerShell автоматически импортирует модули при первом выполнении любой команды в установленном модуле. Теперь вы можете использовать команды в модуле без какой-либо настройки или настройки профиля, поэтому вам не нужно управлять модулями после их установки на свой компьютер.
Команды в модуле также легче найти. Командлет Get-Command теперь получает все команды во всех установленных модулях, даже если они еще не находятся в сеансе. Вы можете найти команду и использовать ее без необходимости сначала импортировать модуль.
В каждом из следующих примеров модуль CimCmdlets, содержащий Get-CimInstance , импортируется в ваш сеанс.
Выполнить команду
Получить команду
Получить справку по команде
Команды Get-Command, содержащие подстановочный знак ( * ), считаются предназначенными для обнаружения, а не для использования и не импортируют никаких модулей.
Автоматически импортируются только модули, хранящиеся в расположении, указанном переменной среды PSModulePath. Модули в других местах необходимо импортировать с помощью командлета Import-Module.
Кроме того, команды, использующие поставщиков PowerShell, не импортируют модуль автоматически. Например, если вы используете команду, для которой требуется диск WSMan:, например командлет Get-PSSessionConfiguration, вам может потребоваться запустить командлет Import-Module, чтобы импортировать модуль Microsoft.WSMan.Management, включающий диск WSMan:.< /p>
Вы по-прежнему можете запускать команду Import-Module для импорта модуля и использовать переменную $PSModuleAutoloadingPreference для включения, отключения и настройки автоматического импорта модулей. Дополнительные сведения см. в разделе about_Preference_Variables.
Как использовать модуль
Чтобы использовать модуль, выполните следующие задачи:
- Установите модуль. (Это часто делается для вас.)
- Найдите команды, добавленные модулем.
- Используйте команды, добавленные модулем.
В этом разделе объясняется, как выполнять эти задачи. Он также содержит другую полезную информацию об управлении модулями.
Как установить модуль
Если вы получаете модуль в виде папки с файлами в ней, вам необходимо установить его на свой компьютер, прежде чем вы сможете использовать его в PowerShell.
Большинство модулей устанавливаются автоматически. PowerShell поставляется с несколькими предустановленными модулями, иногда называемыми основными модулями. На компьютерах под управлением Windows, если функции, включенные в операционную систему, имеют командлеты для управления ими, эти модули предустановлены. При установке компонента Windows с помощью, например, мастера добавления ролей и компонентов в диспетчере серверов или диалогового окна включения или выключения компонентов Windows на панели управления устанавливаются все модули PowerShell, являющиеся частью компонента. Многие другие модули входят в состав установщика или программы установки, которая устанавливает модуль.
Используйте следующую команду, чтобы создать каталог модулей для текущего пользователя:
Скопируйте всю папку модуля в папку Modules. Вы можете использовать любой метод для копирования папки, включая Windows Explorer и Cmd.exe, а также PowerShell. В PowerShell используйте командлет Copy-Item. Например, чтобы скопировать папку MyModule из C:\ps-test\MyModule в каталог Modules, введите:
Вы можете установить модуль в любом месте, но установка модулей в место по умолчанию упрощает управление ими. Дополнительные сведения о расположении модулей по умолчанию см. в разделах Расположение модулей и ресурсов DSC и PSModulePath.
Как найти установленные модули
Чтобы найти модули, которые установлены в расположение модулей по умолчанию, но еще не импортированы в ваш сеанс, введите:
Чтобы найти модули, которые уже были импортированы в ваш сеанс, в командной строке PowerShell введите:
Дополнительную информацию о командлете Get-Module см. в разделе Get-Module.
Как найти команды в модуле
Используйте командлет Get-Command, чтобы найти все доступные команды. Вы можете использовать параметры командлета Get-Command для фильтрации команд, например, по модулю, имени и существительному.
Чтобы найти все команды в модуле, введите:
Например, чтобы найти команды в модуле BitsTransfer, введите:
Дополнительную информацию о командлете Get-Command см. в разделе Get-Command.
Как получить справку по командам в модуле
Если модуль содержит файлы справки для экспортируемых им команд, командлет Get-Help отобразит разделы справки. Используйте тот же формат команды Get-Help, что и для получения справки по любой команде в PowerShell.
Начиная с PowerShell 3.0, вы можете загружать файлы справки для модуля и загружать обновления файлов справки, чтобы они никогда не устаревали.
Чтобы получить справку по командам в модуле, введите:
Чтобы получить онлайн-справку по команде в модуле, введите:
Чтобы загрузить и установить файлы справки для команд в модуле, введите:
Дополнительную информацию см. в разделах Get-Help и Update-Help.
Как импортировать модуль
Возможно, вам придется импортировать модуль или импортировать файл модуля. Импорт необходим, если модуль не установлен в местах, указанных переменной среды PSModulePath, $env:PSModulePath, или модуль состоит из файла, например файла .dll или .psm1, вместо обычного модуля, поставляемого в виде папка.
Вы также можете импортировать модуль, чтобы использовать параметры команды Import-Module, такие как параметр Prefix, который добавляет отличительный префикс к именам существительных всех импортируемых команд, или параметр NoClobber, что не позволяет модулю добавлять команды, которые скрывают или заменяют существующие команды в сеансе.
Чтобы импортировать модули, используйте командлет Import-Module.
Чтобы импортировать модули из местоположения PSModulePath в текущий сеанс, используйте следующий формат команды.
Например, следующая команда импортирует модуль BitsTransfer в текущий сеанс.
Чтобы импортировать модуль, который не находится в папке модуля по умолчанию, используйте полный путь к папке модуля в команде.
Например, чтобы добавить в сеанс модуль TestCmdlets из каталога C:\ps-test, введите:
Чтобы импортировать файл модуля, который не содержится в папке модуля, используйте в команде полный путь к файлу модуля.
Например, чтобы добавить в сеанс модуль TestCmdlets.dll из каталога C:\ps-test, введите:
Дополнительную информацию о добавлении модулей в сеанс см. в разделе Import-Module.
Как импортировать модуль в каждую сессию
Команда Import-Module импортирует модули в текущий сеанс PowerShell. Чтобы импортировать модуль в каждый запускаемый вами сеанс PowerShell, добавьте команду Import-Module в свой профиль PowerShell.
Дополнительную информацию о профилях см. в разделе about_Profiles.
Как удалить модуль
При удалении модуля добавленные им команды удаляются из сеанса.
Чтобы удалить модуль из сеанса, используйте следующий формат команды.
Например, следующая команда удаляет модуль BitsTransfer из текущего сеанса.
Удаление модуля меняет операцию импорта модуля. Удаление модуля не удаляет модуль. Дополнительные сведения см. в разделе Remove-Module.
Расположения модулей и ресурсов DSC, а также PSModulePath
Переменная среды $env:PSModulePath содержит список расположений папок, в которых выполняется поиск модулей и ресурсов.
Расположения в системе: $PSHOME\Modules
Эти папки содержат модули, поставляемые с Windows и PowerShell.
Ресурсы DSC, включенные в PowerShell, хранятся в папке $PSHOME\Modules\PSDesiredStateConfiguration\DSCResources.
Пользовательские модули: это модули, устанавливаемые пользователем в области действия пользователя. Install-Module имеет параметр Scope, который позволяет указать, будет ли модуль установлен для текущего пользователя или для всех пользователей. Дополнительные сведения см. в разделе Install-Module.
Местоположение CurrentUser для конкретного пользователя в Windows — это папка PowerShell\Modules, расположенная в папке Documents в вашем профиле пользователя. Конкретный путь к этому местоположению зависит от версии Windows и от того, используете ли вы перенаправление папок. Microsoft OneDrive также может изменить расположение папки «Документы».
По умолчанию в Windows 10 и более поздних версиях это расположение $HOME\Documents\PowerShell\Modules . В Linux или Mac расположение CurrentUser — $HOME/.local/share/powershell/Modules .
Вы можете проверить расположение папки "Документы" с помощью следующей команды: [Environment]::GetFolderPath('MyDocuments') .
Расположение AllUsers: $env:PROGRAMFILES\PowerShell\Modules в Windows. В Linux или Mac модули хранятся в /usr/local/share/powershell/Modules .
Чтобы добавить или изменить файлы в каталоге $env:Windir\System32, запустите PowerShell с параметром «Запуск от имени администратора».
Вы можете изменить расположение модулей по умолчанию в вашей системе, изменив значение переменной среды PSModulePath, $Env:PSModulePath . Переменная среды PSModulePath создана на основе переменной среды Path и имеет тот же формат.
Чтобы просмотреть расположение модулей по умолчанию, введите:
Чтобы добавить расположение модуля по умолчанию, используйте следующий формат команды.
Точка с запятой ( ; ) в команде отделяет новый путь от пути, предшествующего ему в списке.
Например, чтобы добавить каталог C:\ps-test\Modules, введите:
Чтобы добавить расположение модуля по умолчанию в Linux или MacOS, используйте следующий формат команды:
Например, чтобы добавить каталог /usr/local/Fabrikam/Modules в значение переменной среды PSModulePath, введите:
В Linux или MacOS двоеточие ( : ) в команде отделяет новый путь от пути, предшествующего ему в списке.
При добавлении пути к PSModulePath команды Get-Module и Import-Module включают модули в этот путь.
Установленное значение влияет только на текущий сеанс. Чтобы сделать изменение постоянным, добавьте команду в свой профиль PowerShell или используйте «Система» на панели управления, чтобы изменить значение переменной среды PSModulePath в реестре.
Кроме того, чтобы сделать изменение постоянным, вы также можете использовать метод SetEnvironmentVariable класса System.Environment, чтобы добавить путь к переменной среды PSModulePath.
Дополнительную информацию о переменной PSModulePath см. в разделе about_Environment_Variables.
Модули и конфликты имен
Конфликты имен возникают, когда несколько команд в сеансе имеют одно и то же имя. Импорт модуля вызывает конфликт имен, когда команды в модуле имеют те же имена, что и команды или элементы в сеансе.
Конфликты имен могут привести к скрытию или замене команд.
Скрыто
Команда скрыта, если это не та команда, которая запускается при вводе имени команды, но вы можете запустить ее другим способом, например, указав в имени команды имя модуля или оснастки в который он создал.
Заменено
Команда заменяется, когда вы не можете ее запустить, потому что она была перезаписана командой с тем же именем. Даже если вы удалите модуль, вызвавший конфликт, вы не сможете запустить замененную команду, пока не перезапустите сеанс.
Import-Module может добавлять команды, которые скрывают и заменяют команды в текущем сеансе. Кроме того, команды в вашем сеансе могут скрывать команды, добавленные модулем.
Чтобы обнаружить конфликты имен, используйте параметр All командлета Get-Command. Начиная с PowerShell 3.0 командлет Get-Command получает только те команды, которые запускаются при вводе имени команды. Параметр All получает все команды с определенным именем в сеансе.
Чтобы предотвратить конфликты имен, используйте параметры NoClobber или Prefix командлета Import-Module. Параметр Prefix добавляет префикс к именам импортируемых команд, чтобы они были уникальными в сеансе. Параметр NoClobber не импортирует никаких команд, которые могли бы скрыть или заменить существующие команды в сеансе.
Вы также можете использовать параметры Alias, Cmdlet, Function и Variable командлета Import-Module, чтобы выбрать только те команды, которые вы хотите импортировать, и вы можете исключить команды, которые вызывают конфликты имен в вашем сеансе.
Авторы модулей могут предотвратить конфликты имен, используя свойство DefaultCommandPrefix манифеста модуля, чтобы добавить префикс по умолчанию ко всем именам команд. Значение параметра Prefix имеет приоритет над значением DefaultCommandPrefix.
Даже если команда скрыта, вы можете запустить ее, указав в имени команды имя модуля или оснастки, в которой она возникла.
Правила приоритета команд PowerShell определяют, какая команда запускается, когда сеанс включает команды с одинаковыми именами.
Например, если сеанс включает функцию и командлет с одинаковыми именами, PowerShell запускает функцию по умолчанию. Если сеанс включает команды одного типа с одинаковыми именами, например два командлета с одинаковыми именами, по умолчанию выполняется последняя добавленная команда.
Дополнительную информацию, включая объяснение правил приоритета и инструкции по запуску скрытых команд, см. в разделе about_Command_Precedence.
Модули и оснастки
Вы можете добавлять в сеанс команды из модулей и оснасток. Модули могут добавлять все типы команд, включая командлеты, провайдеры и функции, а также такие элементы, как переменные, псевдонимы и диски PowerShell. Оснастки могут добавлять только командлеты и поставщиков.
Перед удалением модуля или оснастки из сеанса используйте следующие команды, чтобы определить, какие команды будут удалены.
Чтобы найти источник командлета в сеансе, используйте следующий формат команды:
Например, чтобы найти источник командлета Get-Date, введите:
Предупреждения и ошибки, связанные с модулем
Команды, экспортируемые модулем, должны соответствовать правилам именования команд PowerShell. Если импортируемый модуль экспортирует командлеты или функции, в именах которых есть неутвержденные глаголы, командлет Import-Module отображает следующее предупреждающее сообщение.
ВНИМАНИЕ! Некоторые импортированные имена команд содержат неутвержденные глаголы, что может сделать их менее заметными. Используйте параметр Verbose для получения более подробной информации или введите Get-Verb, чтобы просмотреть список разрешенных команд.
Это сообщение является только предупреждением. Весь модуль по-прежнему импортируется, включая несоответствующие команды. Хотя сообщение отображается для пользователей модуля, проблема с именем должна быть устранена автором модуля.
Чтобы скрыть предупреждающее сообщение, используйте параметр DisableNameChecking командлета Import-Module.
Встроенные модули и оснастки
В PowerShell 2.0 и в хост-программах старого стиля в PowerShell 3.0 и более поздних версиях основные команды, устанавливаемые вместе с PowerShell, упакованы в оснастки, которые автоматически добавляются в каждый сеанс PowerShell.
Начиная с PowerShell 3.0, для хост-программ, которые реализуют API состояния начального сеанса InitialSessionState.CreateDefault2, оснастка Microsoft.PowerShell.Core добавляется к каждому сеансу по умолчанию. Модули загружаются автоматически при первом использовании.
Удаленные сеансы, в том числе сеансы, запускаемые с помощью командлета New-PSSession, представляют собой сеансы старого типа, в которых встроенные команды упакованы в оснастки.
Следующие модули (или оснастки) устанавливаются вместе с PowerShell.
- CimCmdlets
- Microsoft.PowerShell.Архив
- Microsoft.PowerShell.Core
- Microsoft.PowerShell.Diagnostics
- Microsoft.PowerShell.Host
- Microsoft.PowerShell.Management
- Microsoft.PowerShell.Security
- Microsoft.PowerShell.Утилита
- Microsoft.WSMan.Management
- Управление пакетами
- PowerShellGet
- PSDesiredStateConfiguration
- PSDДиагностика
- PSReadline
Регистрация событий модуля
Начиная с PowerShell 3.0, вы можете записывать события выполнения командлетов и функций в модулях и оснастках PowerShell, задав для свойства LogPipelineExecutionDetails модулей и оснасток значение $True . Вы также можете использовать параметр групповой политики «Включить ведение журнала модуля», чтобы включить ведение журнала модуля во всех сеансах PowerShell. Дополнительные сведения см. в статьях о ведении журналов и групповых политиках.
Описывает, как создать и использовать профиль PowerShell.
Подробное описание
Вы можете создать профиль PowerShell, чтобы настроить среду и добавить элементы для каждого сеанса PowerShell, который вы запускаете.
Профиль PowerShell — это сценарий, который запускается при запуске PowerShell. Профиль можно использовать в качестве сценария входа для настройки среды. Вы можете добавлять команды, псевдонимы, функции, переменные, оснастки, модули и диски PowerShell. Вы также можете добавить в свой профиль другие элементы, относящиеся к сеансу, чтобы они были доступны в каждом сеансе без необходимости их импорта или повторного создания.
PowerShell поддерживает несколько профилей для пользователей и хост-программ. Однако он не создает профили для вас. В этом разделе описываются профили, а также описывается, как создавать и поддерживать профили на вашем компьютере.
В нем объясняется, как использовать параметр NoProfile консоли PowerShell (PowerShell.exe) для запуска PowerShell без каких-либо профилей. И это объясняет влияние политики выполнения PowerShell на профили.
Файлы профиля
PowerShell поддерживает несколько файлов профилей. Кроме того, хост-программы PowerShell могут поддерживать собственные профили хоста.
Например, консоль PowerShell поддерживает следующие файлы основных профилей. Профили перечислены в порядке приоритета. Первый профиль имеет наивысший приоритет.
Описание | Путь | ||
---|---|---|---|
Все пользователи, все хосты | Windows — $PSHOME\Profile.ps1 Linux — /usr/local/microsoft/powershell/7/profile.ps1 macOS — /usr/local/microsoft/powershell/7/profile .ps1 | ||
Все пользователи, текущий хост | Windows — $PSHOME\Microsoft.PowerShell_profile.ps1 Linux — /usr/local/microsoft /powershell/7/Microsoft.Powershell_profile.ps1 macOS — /usr/local/microsoft/powershell/7/Microsoft.Powershell_profile.ps1 | ||
Текущий пользователь, все Хосты | Windows — $Home\[My ]Documents\PowerShell\Profile.ps1 Linux — ~/.config/powershell/profile.ps1 macOS — ~/.config/ powershell/profile.ps1 | ||
Текущий пользователь, Текущий хост | Windows — $Home\[My ]Documents\PowerShell\Microsoft.PowerShell_profile.ps1 Linux — ~/.config/powershell/Microsoft.Powershell_profile.ps1 macOS — ~/.config/powershell/Microsoft.Powershell_profile.ps1 |
Описание | Путь |
---|---|
Все пользователи, Текущий хост | $PSHOME\Microsoft.VSCode_profile.ps1 |
Текущий пользователь, текущий хост | $Home\[My ]Documents\PowerShell\ Microsoft.VSCode_profile.ps1 |
В справке PowerShell профиль «CurrentUser, Current Host» чаще всего называют «вашим профилем PowerShell».
В Windows расположение папки «Документы» можно изменить путем перенаправления папки или OneDrive. Мы не рекомендуем перенаправлять папку «Документы» на сетевую папку или включать ее в OneDrive. Перенаправление папки может привести к сбою сценариев профиля и загрузке модулей.
Переменная $PROFILE
Автоматическая переменная $PROFILE хранит пути к профилям PowerShell, доступным в текущем сеансе.
Чтобы просмотреть путь к профилю, отобразите значение переменной $PROFILE. Вы также можете использовать переменную $PROFILE в команде для представления пути.
Переменная $PROFILE хранит путь к профилю «Текущий пользователь, текущий хост». Остальные профили сохраняются в свойствах примечания переменной $PROFILE.
Например, переменная $PROFILE имеет следующие значения в консоли Windows PowerShell.
Описание | Имя |
---|---|
Текущий пользователь, текущий хост | $PROFILE |
Текущий пользователь, текущий хост | $PROFILE.CurrentUserCurrentHost |
Текущий пользователь, все узлы | $PROFILE.CurrentUserAllHosts |
Все пользователи, текущий узел | $PROFILE.AllUsersCurrentHost |
Все пользователи, все хосты | $PROFILE.AllUsersAllHosts |
Поскольку значения переменной $PROFILE меняются для каждого пользователя и в каждом хост-приложении, убедитесь, что вы отображаете значения переменных профиля в каждом используемом вами хост-приложении PowerShell.
Чтобы просмотреть текущие значения переменной $PROFILE, введите:
Вы можете использовать переменную $PROFILE во многих командах. Например, следующая команда открывает в Блокноте профиль «Текущий пользователь, текущий хост»:
Следующая команда определяет, создан ли на локальном компьютере профиль «Все пользователи, все хосты»:
Как создать профиль
Чтобы создать профиль PowerShell, используйте следующий формат команды:
Например, чтобы создать профиль для текущего пользователя в текущем хост-приложении PowerShell, используйте следующую команду:
В этой команде оператор If предотвращает перезапись существующего профиля. Замените значение заполнителя путем к файлу профиля, который вы хотите создать.
Чтобы создать профили «Все пользователи» в Windows Vista и более поздних версиях Windows, запустите PowerShell с параметром «Запуск от имени администратора».
Как редактировать профиль
Вы можете открыть любой профиль PowerShell в текстовом редакторе, например в Блокноте.
Чтобы открыть профиль текущего пользователя в текущем хост-приложении PowerShell в Блокноте, введите:
Чтобы открыть другие профили, укажите имя профиля. Например, чтобы открыть профиль для всех пользователей всех хост-приложений, введите:
Чтобы применить изменения, сохраните файл профиля и перезапустите PowerShell.
Как выбрать профиль
Если вы используете несколько хост-приложений, поместите элементы, которые вы используете во всех хост-приложениях, в свой профиль $PROFILE.CurrentUserAllHosts. Поместите элементы, относящиеся к ведущему приложению, например команду, устанавливающую цвет фона для ведущего приложения, в профиль, относящийся к этому ведущему приложению.
Если вы являетесь администратором, который настраивает PowerShell для многих пользователей, следуйте этим рекомендациям:
- Храните общие элементы в профиле $PROFILE.AllUsersAllHosts
- Хранить элементы, относящиеся к ведущему приложению, в профилях $PROFILE.AllUsersCurrentHost, относящихся к ведущему приложению.
- Хранить элементы для определенных пользователей в пользовательских профилях
Обязательно ознакомьтесь с документацией по хост-приложению для любых специальных реализаций профилей PowerShell.
Как использовать профиль
Многие элементы, которые вы создаете в PowerShell, и большинство выполняемых вами команд влияют только на текущий сеанс. Когда вы завершаете сеанс, элементы удаляются.
Команды и элементы, относящиеся к сеансу, включают переменные, переменные предпочтений, псевдонимы, функции, команды (кроме Set-ExecutionPolicy) и модули PowerShell, которые вы добавляете в сеанс.
Чтобы сохранить эти элементы и сделать их доступными во всех будущих сеансах, добавьте их в профиль PowerShell.
Еще одно распространенное применение профилей — сохранение часто используемых функций, псевдонимов и переменных. Когда вы сохраняете элементы в профиле, вы можете использовать их в любом применимом сеансе без их повторного создания.
Как создать профиль
Когда вы открываете файл профиля, он пуст. Однако вы можете заполнить его часто используемыми переменными, псевдонимами и командами.
Вот несколько советов для начала.
Добавьте команды, которые упрощают открытие вашего профиля
Это особенно полезно, если вы используете профиль, отличный от профиля «Текущий пользователь, текущий хост». Например, добавьте следующую команду:
Добавить функцию, которая выводит список псевдонимов для любого командлета
Настройте свою консоль
Добавить пользовательское приглашение PowerShell
Дополнительную информацию о приглашении PowerShell см. в разделе about_Prompts.
Параметр NoProfile
Чтобы запустить PowerShell без профилей, используйте параметр NoProfile программы PowerShell.exe, запускающей PowerShell.
Для начала откройте программу, которая может запускать PowerShell, например Cmd.exe или сам PowerShell. Вы также можете использовать диалоговое окно «Выполнить» в Windows.
Для получения полного списка параметров PowerShell.exe введите:
Профили и политика выполнения
Политика выполнения PowerShell частично определяет, можете ли вы запускать сценарии и загружать файлы конфигурации, включая профили. Политика ограниченного выполнения используется по умолчанию. Это предотвращает запуск всех сценариев, включая профили. Если вы используете политику "Ограниченный доступ", профиль не запускается и его содержимое не применяется.
Команда Set-ExecutionPolicy устанавливает и изменяет политику выполнения. Это одна из немногих команд, которые применяются во всех сеансах PowerShell, поскольку значение сохраняется в реестре. Вам не нужно задавать его при открытии консоли, и вам не нужно сохранять команду Set-ExecutionPolicy в своем профиле.
Профили и удаленные сеансы
Профили PowerShell не запускаются автоматически в удаленных сеансах, поэтому команды, добавляемые профилями, отсутствуют в удаленном сеансе. Кроме того, автоматическая переменная $PROFILE не заполняется в удаленных сеансах.
Чтобы запустить профиль в сеансе, используйте командлет Invoke-Command.
Например, следующая команда запускает профиль «Текущий пользователь, текущий хост» с локального компьютера в сеансе в $s .
Следующая команда запускает профиль «Текущий пользователь, текущий хост» с удаленного компьютера в сеансе в $s . Поскольку переменная $PROFILE не заполнена, команда использует явный путь к профилю. Мы используем оператор точечного источника, чтобы профиль выполнялся в текущей области действия на удаленном компьютере, а не в своей собственной области.
После выполнения этой команды команды, добавляемые профилем в сеанс, доступны в $s .
Тейлор Гибб
Тейлор Гибб
Писатель
Тейлор Гибб — профессиональный разработчик программного обеспечения с десятилетним опытом работы. Он работал региональным директором Microsoft в Южной Африке в течение двух лет и получил несколько наград Microsoft MVP (самый ценный профессионал). В настоящее время он работает в отделе исследований и разработок в Derivco International. Подробнее.
Если вы предпочитаете использовать Windows PowerShell, а не командную строку, вам может понравиться возможность доступа к ней прямо из контекстного меню, которое появляется, когда вы щелкаете правой кнопкой мыши папку в Windows. Вот как это сделать.
Windows уже включает параметр «Открыть окно команд здесь», когда вы щелкаете папку, удерживая нажатой клавишу Shift. Однако PowerShell предлагает более мощный набор функций, особенно если вы выполняете какую-либо автоматизацию с помощью сценариев. Если вы предпочитаете PowerShell, вам нужно либо открыть PowerShell, а затем перейти к папке, либо использовать команду из меню в проводнике. Вместо этого, почему бы не добавить опцию «Открыть окно PowerShell здесь» в то же контекстное меню? Это легко сделать. Вам просто нужно погрузиться в реестр Windows, чтобы внести пару быстрых правок.
Добавить «Открыть окно PowerShell здесь» в контекстное меню, отредактировав реестр вручную
Чтобы добавить параметр «Открыть окно PowerShell здесь» в контекстное меню, вам просто нужно внести пару быстрых правок в реестр Windows.
Стандартное предупреждение: Редактор реестра — это мощный инструмент, и неправильное его использование может сделать вашу систему нестабильной или даже неработоспособной. Это довольно простой способ, и если вы будете следовать инструкциям, у вас не должно возникнуть никаких проблем. Тем не менее, если вы никогда не работали с ним раньше, подумайте о том, чтобы прочитать о том, как использовать редактор реестра, прежде чем начать. И обязательно сделайте резервную копию реестра (и вашего компьютера!) перед внесением изменений.
Откройте редактор реестра, нажав «Пуск» и введя «regedit». Нажмите Enter, чтобы открыть редактор реестра и дать ему разрешение на внесение изменений в ваш компьютер.
В редакторе реестра используйте левую боковую панель, чтобы перейти к следующему разделу:
Далее вы создадите новый ключ внутри ключа оболочки. Щелкните правой кнопкой мыши ключ оболочки и выберите «Создать» > «Ключ». Назовите новый ключ «powershellmenu». Мы назвали наш новый ключ powershellmenu, потому что в Windows 8 и 10 (и как вы можете видеть на нашем снимке экрана) уже существует ключ Powershell, который выполняет другие функции.
Теперь вы измените значение (по умолчанию) в новом ключе powershellmenu. Выбрав ключ powershellmenu, дважды щелкните значение (по умолчанию), чтобы открыть окно его свойств.
В окне свойств установите значение в поле «Значение данных» на «Открыть PowerShell здесь», а затем нажмите «ОК». Это дает команде имя, которое появится в контекстном меню.
При желании вы также можете настроить команду таким образом, чтобы она появлялась только в том случае, если вы удерживаете нажатой клавишу Shift при щелчке правой кнопкой мыши на диске — почти так же, как команда «Открыть командную строку» скрыта, если вы не нажмете Shift и не щелкнете правой кнопкой мыши по диску. папка. Для этого щелкните правой кнопкой мыши клавишу powershellmenu и выберите «Создать» > «Строковое значение». Назовите новое значение «Расширенный». Вам не нужно вносить в него какие-либо изменения. Просто наличие этой строки приведет к тому, что команда будет скрыта за доступом с помощью клавиши Shift.
Независимо от того, сделали ли вы необязательный шаг по созданию расширенного значения или нет, остальная часть процесса остается неизменной. Затем вам нужно создать новый ключ внутри вашего ключа powershellmenu. Щелкните правой кнопкой мыши клавишу powershellmenu и выберите «Создать» > «Ключ». Назовите новый ключ «команда».
Теперь вы измените значение (по умолчанию) внутри нового командного ключа. Выбрав командную клавишу, дважды щелкните значение (по умолчанию), чтобы открыть окно его свойств.
Значение (по умолчанию) указывает фактическую команду, которая будет выполняться при выборе параметра в контекстном меню. Введите следующий текст в поле «Значение данных» и нажмите «ОК».
Изменения должны вступить в силу немедленно, чтобы вы могли выйти из редактора реестра.Чтобы проверить это, просто щелкните правой кнопкой мыши (или Shift+щелчок правой кнопкой мыши, если вы настроили этот параметр) любую папку и выберите команду «Открыть с помощью PowerShell».
Окно PowerShell должно открыться немедленно, и через несколько секунд вы переместитесь в папку, которую вы щелкнули правой кнопкой мыши.
Если вы хотите отменить изменения в любое время, просто вернитесь в реестр и удалите созданный ключ powershellmenu. Это автоматически удалит все значения и другие ключи, созданные вами внутри ключа powershellmenu, и удалит команду из контекстного меню.
Загрузите наши взломы реестра в один клик
Если вам не хочется копаться в реестре самостоятельно, мы создали некоторые приемы реестра, которые вы можете использовать. Хак «Добавить PowerShell в контекстное меню» добавляет команду PowerShell в обычное контекстное меню. «Добавить PowerShell в контекстное меню Shift» добавляет команду PowerShell в контекстное меню, которое вы получаете, когда используете Shift + щелчок правой кнопкой мыши. А «Удалить PowerShell из контекстного меню» удаляет команду независимо от того, каким способом вы ее добавили. Все три хака включены в следующий ZIP-файл. Дважды щелкните тот, который вы хотите использовать, и просматривайте подсказки.
Эти хаки на самом деле представляют собой просто ключ powershellmenu, урезанный до дополнительных ключей и значений, о которых мы говорили в предыдущем разделе, а затем экспортированный в файл .REG. Запуск хаков просто изменяет значение. И если вам нравится возиться с реестром, стоит потратить время на то, чтобы научиться делать собственные взломы реестра.
- › Как навести порядок в контекстном меню Windows
- › 9 способов открыть PowerShell в Windows 10
- › Сколько оперативной памяти требуется вашему ПК?
- › 5 вещей, которые вы, вероятно, не знали о GIF-файлах
- › QWERTY-клавиатура — самая большая неразгаданная тайна технологий
- › Что означает ИК и как вы его используете?
- › 7 основных функций Microsoft Excel для составления бюджета
- › Matter — это долгожданный стандарт умного дома
Вы когда-нибудь работали в проводнике Windows, и вам просто нужно было быстро открыть подсказку PowerShell в папке? Вам нужна опция открыть окно powershell здесь или опция открыть окно команд здесь? Если да, то вам повезло. В этом руководстве вы узнаете, как открыть PowerShell в определенной папке при использовании проводника Windows.
Оглавление
Предпосылки
Если вы собираетесь продолжить, убедитесь, что у вас есть следующее:
- Хост Windows 10, Windows Server 2016 или Windows Server 2019. В этом руководстве будет использоваться Windows 10.
- Вы вошли в систему с локальной учетной записью в группе администраторов или, по крайней мере, с правами на повышение до администратора, если это необходимо.
Открытие PowerShell через адресную строку
В верхней части окна File Explorer есть элемент, который позволяет запускать программы так же, как если бы вы находились в командной строке. Вы можете вызвать PowerShell из этой адресной строки, нажав CTRL. Из Проводника:
- Нажмите и удерживайте клавишу ALT или CTRL.
- Нажмите клавишу D или L. Это поместит курсор в адресную строку.
- Введите powershell и нажмите Enter. PowerShell будет открыт в текущем каталоге.
Если вы вошли в систему как администратор, вы будете в административной строке как для PowerShell, так и для командной строки.
Приведенный ниже анимированный gif — это то, что вы должны увидеть на своем экране:
Открытие PowerShell через меню «Файл»
Еще один удобный способ открыть PowerShell в проводнике — использовать меню файлов. Используя меню файлов, вы можете использовать мышь или сочетание клавиш. Нажатие ALT позволяет открыть меню файлов. В проводнике:
- Нажмите и удерживайте клавишу ALT.
- Нажмите клавишу F. Откроется меню файлов.
- Нажмите клавишу S. Этот параметр выберет Открыть Windows PowerShell и откроет еще одно подменю.
- Наконец нажмите клавишу R. PowerShell откроется в текущем каталоге.
Если вам нужно открыть PowerShell от имени администратора, используйте клавишу A вместо R.
На анимированном gif-файле ниже показано, как должен выглядеть процесс:
Если удерживать клавишу ALT во время навигации по контекстному меню, отобразятся клавиши для перехода по меню. Сочетания клавиш работают в Windows 10, Windows Server 2016 и Windows Server 2019.
Создание пользовательского контекстного меню PowerShell
Теперь, когда у вас есть все сочетания клавиш на панели инструментов, пришло время углубиться и создать контекстное меню в проводнике.
Контекстное меню — это меню, которое вы видите, когда щелкаете элемент правой кнопкой мыши в Windows.
Используя специально размещенный раздел реестра Windows, вы можете создать настраиваемый элемент контекстного меню, чтобы быстро открывать окно PowerShell при щелчке правой кнопкой мыши внутри папки. Давайте это изменим.
Если щелкнуть правой кнопкой мыши папку в проводнике, ниже вы увидите, что в контекстном меню нет пункта для открытия PowerShell.
Нет пункта контекстного меню для PowerShell.
Однако, если удерживать клавишу SHIFT и затем щелкнуть правой кнопкой мыши в папке, вы увидите пункт контекстного меню ниже.
Опция контекстного меню при использовании SHIFT+щелчка правой кнопкой мыши.
Давайте создадим собственный элемент контекстного меню, который позволит вам открывать окно PowerShell без удерживания клавиши Shift.
Чтобы создать настраиваемый элемент контекстного меню, необходимо создать несколько разных ключей и значений реестра Windows. Эти значения при создании мгновенно создадут настраиваемый элемент контекстного меню.
Ниже приведены следующие необходимые ключи и значения реестра Windows:
Путь | Имя | Значение | Примечания |
HKCR:\Directory\shell\powershellmenu | (по умолчанию) | Открыть PowerShell здесь | |
HKCR:\Directory\shell\powershellmenu\command | (по умолчанию) | C:\Windows\system32\ WindowsPowerShell\v1.0\powershell.exe -NoExit -Command Set-Location -LiteralPath '%L' | |
HKCR:\Directory\shell\ runas | (по умолчанию) | Открыть PowerShell здесь от имени администратора | |
HKCR:\Directory\shell\runas | HasLUAShield | Добавляет встроенный в значке для запросов с повышенными правами |
Чтобы добавить настраиваемое контекстное меню, вы можете создать вышеуказанные ключи и значения вручную или использовать сценарий PowerShell, который сделает за вас грязную работу.
Ниже приведен сценарий, который можно использовать для быстрого создания всех необходимых ключей и значений за один раз.
Когда вы закончите создавать ключи и значения реестра, вы должны увидеть значение, как показано ниже:
Заполните запись ключа реестра контекстного меню для опции open powershell здесь.
Тестирование пользовательского пункта меню PowerShell
После завершения закройте редактор реестра Windows, если он у вас открыт, и щелкните правой кнопкой мыши любую папку в проводнике. Теперь вы должны увидеть новый пункт контекстного меню Open PowerShell Here, который вы создали!
Открыть контекстное меню PowerShell здесь
Ниже показана новая опция контекстного меню Открыть PowerShell здесь в действии:
Дальнейшие шаги
Теперь, когда вы знаете все способы открыть окно PowerShell в проводнике, что еще вы можете добавить в контекстное меню, чтобы повысить производительность проводника? Возможно, вы можете добавить Открыть командную строку здесь или поэкспериментировать с открытием разных профилей PowerShell с помощью контекстных меню. Попробуйте добавить значок в контекстное меню даже!
Ненавидите рекламу? Хотите поддержать писателя? Получите многие из наших руководств в виде руководства по ATA.
Ещё от ATA Learning & Partners
Резервное копирование Office 365 для чайников
Лучшее руководство по защите данных Microsoft Office 365. Изучите готовые функции безопасности.
Руководства ATA
ATA известна своими высококачественными письменными учебными пособиями в виде сообщений в блогах. Поддержите ATA с помощью электронных книг ATA Guidebook PDF, доступных в автономном режиме и без рекламы!
Читайте также:
- Зачем в модеме карта памяти
- При выключении компьютера вся информация стирается выберите один ответ
- Тест для определения того, является ли пользователь сайта человеком или компьютером
- Поиск Google в Google Chrome
- Как настроить звук в наушниках на ноутбуке