Как добавить командлет или функцию PowerShell на мой компьютер, чтобы он всегда был доступен? - PullRequest
16 голосов
/ 28 августа 2009

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

  • Копировать ли я в определенную папку?
  • Поместить ли его содержимое в определенный файл?
  • Нужно ли авторизовать его, или подписать, или дать какое-то разрешение?

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

Ответы [ 2 ]

15 голосов
/ 28 августа 2009

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

man about_profiles

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

man about_scripts

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

man about_modules
3 голосов
/ 28 августа 2009

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

...