пятница, 13 сентября 2013 г.

Как импортировать модули в PowerShell

 

http://winintro.ru/windowspowershellhelp.ru/html/3be86334-7efa-4ccd-952e-54afe47977a2.htm

 

РАЗДЕЛ
about_Modules

КРАТКОЕ ОПИСАНИЕ
Описание процедур установки, импорта и использования модулей
Windows PowerShell

ПОЛНОЕ ОПИСАНИЕ
Модуль - это пакет команд Windows PowerShell, таких как
командлеты, поставщики, функции, переменные и псевдонимы.

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

В этом разделе описывается, как использовать модули Windows
PowerShell. Сведения о процедуре создания модулей Windows
PowerShell см. в разделе "Создание модуля Windows PowerShell" в
библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=144916.


ИСПОЛЬЗОВАНИЕ МОДУЛЯ
Чтобы воспользоваться модулем, выполните следующие действия.

1. Установите модуль. (Обычно это выполняется автоматически.)
2. Импортируйте модуль в сеанс Windows PowerShell.
3. Найдите команды, добавленные модулем.
4. Выполните эти команды.

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


УСТАНОВКА МОДУЛЯ
Если модуль предоставлен в виде папки с файлами, необходимо
установить его на компьютер, чтобы можно было импортировать его в
Windows PowerShell.

Обычно модули устанавливаются автоматически. В Windows PowerShell
имеется несколько предустановленных модулей. В Windows Server
2008 R2 можно воспользоваться мастером добавления компонентов
(в диспетчере сервера), чтобы автоматически установить выбранные
компоненты. Многие модули поставляются с программой установки,
выполняющей установку модуля.

Для установки модуля, предоставленного в виде папки, выполните
следующие действия.

1. Создайте каталог "Modules" для текущего пользователя, если
он не существует.

Для этого введите следующую команду:

new-item -type directory -path
$home\Documents\WindowsPowerShell\Modules

2. Полностью скопируйте папку модуля в каталог "Modules".

Скопировать папку можно любыми средствами, включая
проводник, программу Cmd.exe и Windows PowerShell.

В Windows PowerShell для этого воспользуйтесь командлетом
Copy-Item. Например, чтобы скопировать папку "MyModule" из
каталога "C:\ps-test\MyModule" в каталог "Modules",
введите следующую команду:

copy-item -path c:\ps-test\MyModule -dest
$home\Documents\WindowsPowerShell\Modules

Установить модуль можно в любое местоположение, однако если
всегда устанавливать их в местоположение модулей по умолчанию,
ими проще управлять. Дополнительные сведения о местоположении
модулей по умолчанию см. в разделе "Местоположения модулей и
переменная PSModulePath".



ПОИСК УСТАНОВЛЕННЫХ МОДУЛЕЙ
Если модуль установлен, его можно импортировать в сеанс Windows
PowerShell.

Чтобы найти модули, установленные в местоположении модулей по
умолчанию, в командной строке Windows PowerShell введите следующее:

get-module -listAvailable


Чтобы найти модули, уже импортированные в сеанс, в командной
строке Windows PowerShell введите следующее:

get-module

Дополнительные сведения о командлете Get-Module см. в разделе
Get-Module.



ИМПОРТ МОДУЛЯ
Чтобы выполнить команды, содержащиеся в модуле, импортируйте его
в сеанс Windows PowerShell.

Чтобы импортировать модули в текущий сеанс из местоположения
модулей по умолчанию, используйте следующий формат команды:

import-module <имя_модуля>

Например, следующая команда импортирует модуль BitsTransfer в
текущий сеанс.

import-module BitsTransfer



Чтобы импортировать модуль, не находящийся в местоположении по
умолчанию, укажите в команде полный путь к папке этого модуля.

Например, чтобы добавить в текущий сеанс модуль TestCmdlets,
расположенный в папке "C:\ps-test", введите следующую команду:

import-module c:\ps-test\TestCmdlets

Чтобы получить дополнительные сведения о добавлении модулей в
сеансы, см. Import-Module.



ИМПОРТ ВСЕХ МОДУЛЕЙ В СЕАНС WINDOWS POWERSHELL.
В операционных системах Windows 7 и Windows Server 2008 R2 задача
"Импортировать все модули" открывает сеанс Windows PowerShell,
содержащий все доступные модули и оснастки Windows PowerShell.

Чтобы запустить сеанс Windows PowerShell со всеми доступными
модулями и оснастками Windows PowerShell, выполните следующие
действия.

-- Щелкните правой кнопкой мыши значок Windows PowerShell на
панели задач и выберите "Импортировать все модули".

Примечание. В Windows Server 2008 R2 значок Windows PowerShell по
умолчанию закреплен на панели задач. Впрочем, чтобы
появилась задача "Импортировать все модули", необходимо
один раз запустить Windows PowerShell.

Чтобы импортировать в сеанс все доступные модули в других версиях
Windows, в командной строке Windows PowerShell введите следующее:

get-module -listAvailable | import-module



ПОИСК КОМАНД В МОДУЛЕ
После того как модуль импортирован в сеанс Windows PowerShell,
можно использовать содержащиеся в нем команды.

Чтобы найти добавленные модулем команды, в командной строке
Windows PowerShell введите следующее:

get-command -module <имя_модуля>

Например, чтобы найти команды, добавленные модулем BitsTransfer,
введите следующее:

get-command -module BitsTransfer

Дополнительные сведения о командлете Get-Command см. в разделе
Get-Command.



ПОИСК СПРАВКИ ПО КОМАНДАМ В МОДУЛЕ
Если модуль содержит разделы справки по командам, которые он
экспортирует, их можно вывести с помощью командлета Get-Help.
Используйте команду такого же формата, как и для любого раздела
справки Windows PowerShell.

Чтобы найти раздел справки по содержащимся в модуле командам, в
командной строке Windows PowerShell введите следующее:

get-help <имя_команды>

Чтобы вывести более подробную справку, введите следующее:

get-help <имя_команды> -detailed

Например, чтобы найти подробную справку о командлете
Start-BitsTransfer, введите следующую команду:

get-help Start-BitsTransfer -detailed

Дополнительные сведения о модуле Get-Help см. в разделе Get-Help.




УДАЛЕНИЕ МОДУЛЯ
Если удалить модуль, добавленные им команды удаляются из сеанса.

Чтобы удалить модуль из сеанса, используйте следующий формат команды:

remove-module <имя_модуля>

Например, следующая команда удаляет модуль BitsTransfer из
текущего сеанса.

remove-module BitsTransfer

Операция удаления модуля отменяет операцию его импорта. При этом
установка модуля не отменяется. Дополнительные сведения о
командлете Remove-Module см. в разделе Remove-Module.



ИМПОРТ МОДУЛЯ В КАЖДОМ СЕАНСЕ
Команда Import-Module импортирует модули в текущий сеанс Windows
PowerShell. Она затрагивает только текущий сеанс.

Чтобы модуль импортировался в каждый новый сеанс Windows
PowerShell, добавьте команду Import-Module в профиль Windows
PowerShell.

Дополнительные сведения о профилях см. в разделе about_Profiles.


МЕСТОПОЛОЖЕНИЯ МОДУЛЕЙ И ПЕРЕМЕННАЯ PSMODULEPATH
Для модулей Windows PowerShell предусмотрено два местоположения
по умолчанию: одно для системы, другое для текущего пользователя.

Для системы: $pshome\Modules
(%windir%\System32\WindowsPowerShell\v1.0\Modules)

Для текущего $home\Documents\WindowsPowerShell\Modules
пользователя: (%профиль_пользователя%\Documents\WindowsPowerShell\Modules)

- или:

$home\My Documents\WindowsPowerShell\Modules
(%профиль_пользователя%\My Documents\WindowsPowerShell\Modules)



Примечание. Чтобы добавить или изменить файлы в каталоге
%Windir%\System32 в операционных системах Windows
Vista, Windows Server 2008 и Windows более поздних
версий, запустите Windows PowerShell с параметром
"Запуск от имени администратора".


Чтобы изменить местоположения модулей по умолчанию для системы,
измените значение переменной среды PSModulePath ($env:psmodulepath).
Переменная среды PSModulePath основана на переменной среды
Path и имеет тот же формат.


Чтобы отобразить местоположения модулей по умолчанию, введите
следующую команду:

$env:psmodulepath

Чтобы добавить местоположение модулей по умолчанию, используйте
следующий формат команды:

$env:psmodulepath = $env:psmodulepath + ";<путь>"

Точка с запятой (;) в этой команде отделяет новый путь от
предыдущего пути в списке.


Например, чтобы добавить каталог "C:\ps-test\Modules", введите
следующую команду:

$env:psmodulepath + ";c:\ps-test\Modules"


После добавления пути в переменную PSModulePath команды
Get-Module и Import-Module действуют в том числе на модули в
каталоге, на который указывает этот путь.

Задаваемое значение влияет только на текущий сеанс. Чтобы
сохранить изменение, добавьте эту команду в профиль Windows
PowerShell или откройте диспетчер "Система" на панели управления
и измените значение переменной среды PSModulePath в реестре.

Дополнительные сведения о переменной PSModulePath см. в разделе
about_Environment_Variables.



МОДУЛИ И КОНФЛИКТЫ ИМЕН
Конфликт имен происходит, когда в сеансе имеется несколько команд
с одинаковым именем. При импорте модуля возникает конфликт имен,
если содержащиеся в нем команды имеют такие же имена, как команды
или элементы, уже имеющиеся в сеансе.

Конфликты имен могут возникать в результате скрытия или замены команд.
-- Скрытие. Скрытой называется команда, не выполняемая при
вводе ее имени, но выполняемая другими способами
(например, с указанием имени модуля или оснастки, из
которой добавлена команда).

-- Замена. Замененной называется команда, поверх которой
записана команда с таким же именем. Даже если удалить
модуль, являющийся причиной конфликта, выполнить
замененную команду можно только после перезапуска сеанса.


Команда Import-Module может добавить команды, скрывающие или
заменяющие команды в текущем сеансе. Кроме того, команды в
текущем сеансе могут скрыть команды, добавленные модулем.

Чтобы предотвратить конфликт имен, используйте команду
Import-Command с параметром Prefix, чтобы создать уникальные
имена для импортируемых команд.

Команду Import-Module также можно использовать с параметрами
Alias, Cmdlet, Function и Variable, чтобы выбрать только те
команды, которые требуется импортировать, исключив команды,
вызывающие конфликт имен в сеансе.

Даже если команда скрыта, можно выполнить ее, указав (помимо ее
имени) имя модуля или оснастки, из которой она добавлена.

Правила приоритета команд Windows PowerShell определяют, какая из
конфликтующих команд запускается в сеансе, содержащем команды с
одинаковыми именами.

Например, если сеанс содержит функцию и командлет с одинаковым
именем, по умолчанию Windows PowerShell выполняет функцию. Если
сеанс содержит команды одинакового типа (например, два
командлета) с одинаковым именем, по умолчанию выполняется
команда, добавленная последней.

Дополнительные сведения, включая пояснения правил приоритетов и
инструкции по запуску скрытых команд, см. в разделе
about_Command_Precedence.



МОДУЛИ И ОСНАСТКИ
Команды из модулей и оснасток можно добавлять в сеанс. Из модулей
можно добавлять все типы команд, включая командлеты, поставщики и
функции, а также элементы, такие как переменные, псевдонимы и
диски Windows PowerShell. Из оснасток можно добавлять только
командлеты и поставщики.

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

Прежде чем удалить модуль или оснастку из сеанса, с помощью
следующих команд определите, какие команды будут при этом удалены.

Чтобы определить, откуда командлет добавлен в сеанс, используйте
следующий формат команды:

get-command <имя_командлета> | format-list -property verb,
noun, pssnapin, module

Например, для поиска источника командлета Get-Date введите
следующую команду:

get-command get-date | format-list -property verb, noun,
pssnapin, module
Дополнительные сведения об оснастках Windows PowerShell см в
разделе about_PSSnapins.


CМ. ТАКЖЕ
about_Command_Precedence
about_PSSnapins
Get-Command
Get-Help
Get-Module
Import-Module
Remove-Module




Комментариев нет: