РАЗДЕЛ
about_Modules
КРАТКОЕ ОПИСАНИЕ
Описание процедур установки, импорта и использования модулей
Windows PowerShell
ПОЛНОЕ ОПИСАНИЕ
Модуль - это пакет команд Windows PowerShell, таких как
командлеты, поставщики, функции, переменные и псевдонимы.
Составляя команды, пользователи могут организовывать их с помощью
модулей и передавать их другим пользователям. Получив такой
модуль, пользователь может добавить содержащиеся в нем команды в
сеанс Windows PowerShell и использовать их аналогично встроенным
командам.
В этом разделе описывается, как использовать модули Windows
PowerShell. Сведения о процедуре создания модулей Windows
PowerShell см. в разделе "Создание модуля Windows PowerShell" в
библиотеке MSDN по адресу https://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