Как добавить командлет или функцию PowerShell на мою машину, чтобы она всегда была доступна?

Если я найду (или создаю) новый командлет (или функцию) PowerShell, как его добавить на свою машину?

  • Скопировать ли его в определенную папку?
  • Я помещаю его содержимое в конкретный файл?
  • Нужно ли мне авторизовать его или подписывать его или каким-то образом разрешать его?

Я не хочу использовать его всего за один сеанс; Я хочу, чтобы он был доступен, когда я использую PowerShell на этом компьютере.

Ответы

Ответ 1

Как упоминает Алекс, любая функция, определенная в вашем профиле или в script, которая попадает в ваш профиль, будет всегда доступна. То же самое происходит, если вы используете Add-PSSnapin в своем профиле, чтобы добавить snapin. Командлеты в snapin всегда будут доступны. Подробнее о профилях читайте в разделе справки:

man about_profiles

Однако, если у вас есть значительное количество функций, вы можете не загружать их, пока они не понадобятся. В этом случае вы можете организовать функциональность в скриптах, а затем поместить эти сценарии в одну или несколько каталогов, которые находятся на вашем пути. Затем вы можете ссылаться на script по имени без указания полного пути или даже расширения .PS1. Дополнительные сведения об использовании скриптов см. В разделе справки:

man about_scripts

PowerShell V2 предлагает еще лучший подход к организации функций и загрузке их по требованию. Эта функция называется модулями и позволяет вам импортировать модуль простым именем (а не путем) и выбирать, какие функции и переменные становятся общедоступными, а какие остаются частными. Если у вас есть V2, проверьте модули:

man about_modules

Ответ 2

Вы должны получить доступ к командлетам через свой профиль script. Таким образом, каждый раз, когда вы получаете доступ к PowerShell, он загружается. См. Сила профилей.