Как мне создать модули powershell 2.0? - PullRequest
8 голосов
/ 04 декабря 2008

Я слышал, что у PowerShell 2.0 CTP есть модули, но я не могу найти много примеров кода или инструкций. Я прочитал, какая маленькая помощь там, кажется, онлайн ...

Но я просто продолжаю получать сообщение «Термин« Add-Module »не распознается как командлет ...», когда я пытаюсь загрузить модуль.

Любая помощь будет принята с благодарностью!

Редактировать (июль 2010 г.) Обратите внимание, что этот вопрос основан на CTP PowerShell 2.0 и поэтому устарел на полтора года! Пожалуйста, смотрите ответ Сэмюэля Джека о помощи с PowerShell 2.0 RTM.

Ответы [ 5 ]

9 голосов
/ 12 декабря 2008

В сборке Win7 Add-Module больше нет. Новый командлет - Import-Module. Самый простой способ создать модуль - переименовать файл PS1 в файл PSM1. Оттуда вы можете делать все что угодно, включая манифест модуля.

3 голосов
/ 16 июля 2010

Я не эксперт по Powershell, но вот что я только что понял, используя PowerShell 2.0 RTM.

Предположим, вы хотите создать модуль с именем MyModule :

  1. Убедитесь, что вы создали папку % Мои документы% \ WindowsPowershell \ Modules
  2. Создать папку внутри Модули с именем MyModule
  3. Поместите свой код в файл внутри MyModule и назовите файл MyModule.psm1
  4. Не забудьте использовать команду Export-ModuleMember как последнюю вещь в вашем файле скрипта. Export-ModuleMember -Function * -Alias * экспортирует все функции и псевдонимы
  5. В сценариях, где вы хотите использовать модуль, используйте команду Import-Module MyModule

По умолчанию Powershell настроен не запускать какие-либо сценарии из файлов, поэтому вам необходимо изменить параметры безопасности. Set-ExecutionPolicy Unrestricted поможет вам, если вас не интересуют сценарии, требующие подписи.

2 голосов
/ 04 декабря 2008

Вот немного информации. http://huddledmasses.org/powershell-modules/

http://blogs.msdn.com/mediaandmicrocode/archive/2008/08/10/microcode-all-about-modules-windows-powershell-ctp2.aspx

Будем надеяться, что в грядущей CTP3 есть полезная документация о модулях.

1 голос
/ 12 декабря 2008

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

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

Модули позволят вам, как автору, создавать сценарии и делать только определенные функции / переменные доступными для конечного пользователя модуля.

Они также по существу заменяют концепцию PSSnapin. Вы можете использовать Add-Module Some.dll для добавления сборки, в которой есть командлеты.

Что действительно круто, так это то, что называется Манифестом модулей. Это хеш-таблица, которая в основном определяет все виды зависимостей, а также автора, имя, идентификатор GUID и номер версии. Когда пользователь загружает модуль с манифестом модуля, он проверяет все зависимости и запускает все сценарии, которые автор модуля считает необходимыми.

Должна быть приличная документация по ним, когда CTP3 отправляется.

Надеюсь, это немного поможет.

Andy

0 голосов
/ 04 декабря 2008

Windows PowerShell v2.0: TFM (sapienpress.com) содержит информацию и примеры в одной из глав. Он доступен как электронная книга, которая обновляется по мере выпуска новых CTP. Я также писал о них на ConcentratedTech.com, и на форумах обсуждали их на PowerShellCommunity.org.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...