Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
После установки модуля в системе, скорее всего, потребуется импортировать модуль. Импорт — это процесс, который загружает модуль в активную память, чтобы пользователь смог получить доступ к модулю в сеансе PowerShell. В PowerShell 2.0 можно импортировать только что установленный модуль PowerShell с вызовом командлета import-Module. В PowerShell 3.0 PowerShell может неявно импортировать модуль, когда один из функций или командлетов в модуле вызывается пользователем. Обратите внимание, что обе версии предполагают, что вы устанавливаете модуль в расположении, где PowerShell может найти его; Дополнительные сведения см. в установке модуля PowerShell. Манифест модуля можно использовать для ограничения экспортируемых частей модуля и использовать параметры вызова Import-Module
, чтобы ограничить импортируемые части.
Импорт Snap-In (PowerShell 1.0)
Модули не существовали в PowerShell 1.0: вместо этого необходимо зарегистрировать и использовать оснастки. Однако на этом этапе не рекомендуется использовать эту технологию, так как модули обычно проще устанавливать и импортировать. Дополнительные сведения см. в статье Создание оснастки Windows PowerShell.
Импорт модуля с Import-Module (PowerShell 2.0)
PowerShell 2.0 использует соответствующий командлет Import-Module для импорта модулей. При запуске этого командлета Windows PowerShell выполняет поиск указанного модуля в каталогах, указанных в переменной PSModulePath
. При обнаружении указанного каталога Windows PowerShell выполняет поиск файлов в следующем порядке: файлы манифеста модуля (.psd1
), файлы модуля скрипта (.psm1
), двоичные файлы модуля (.dll). Дополнительные сведения о добавлении каталогов в поиск см. в about_PSModulePath.
В следующем коде описывается импорт модуля:
Import-Module myModule
Предположим, что myModule был расположен в PSModulePath
, PowerShell загрузит myModule в активную память. Если myModule не был расположен в пути PSModulePath
, вы можете явно сообщить PowerShell, где его найти:
Import-Module -Name C:\myRandomDirectory\myModule -Verbose
Вы также можете использовать параметр -Verbose
для определения того, что экспортируется из модуля, и то, что импортируется в активную память. Экспорт и импорт ограничивают то, что предоставляется пользователю: разница в том, кто управляет видимостью. По сути, экспорт управляется кодом в модуле. В отличие от этого, импорт управляется вызовом Import-Module
. Дополнительные сведения см. в разделе Ограничения элементов, импортированныхниже.
Неявно импорт модуля (PowerShell 3.0)
Начиная с Windows PowerShell 3.0 модули импортируются автоматически, когда любой командлет или функция в модуле используется в команде. Эта функция работает над любым модулем в каталоге, который включен в значение переменной среды PSModulePath. Если модуль не сохраняется на допустимом пути, их можно загрузить с помощью явного параметра import-Module, описанного выше.
Следующие действия активируют автоматическое импортирование модуля, также называемое "автоматической загрузкой модуля".
Использование командлета в команде. Например, ввод
Get-ExecutionPolicy
импортирует модуль Microsoft.PowerShell.Security, содержащий командлетGet-ExecutionPolicy
.Чтобы получить команду, используйте командлет get-Command. Например, ввод
Get-Command Get-JobTrigger
импортирует модуль PSScheduledJob, содержащий командлетGet-JobTrigger
. КомандаGet-Command
, содержащая подстановочные знаки, считается обнаружением и не активирует импорт модуля.С помощью командлета Get-Help получить справку для командлета. Например, ввод
Get-Help Get-WinEvent
импортирует модуль Microsoft.PowerShell.Diagnostics, содержащий командлетGet-WinEvent
.
Для поддержки автоматического импорта модулей командлет Get-Command
получает все командлеты и функции во всех установленных модулях, даже если модуль не импортируется в сеанс. Дополнительные сведения см. в разделе справки для командлета Get-Command.
Процесс импорта
При импорте модуля для модуля создается новое состояние сеанса, а в памяти создается объект System.Management.Automation.PSModuleInfo. Состояние сеанса создается для каждого импортируемого модуля (в том числе корневого модуля и всех вложенных модулей). Затем члены, экспортированные из корневого модуля, включая все члены, экспортированные в корневой модуль любыми вложенными модулями, затем импортируются в состояние сеанса вызывающего объекта.
Метаданные элементов, экспортируемых из модуля, имеют свойство ModuleName. Это свойство заполняется именем модуля, экспортированного им.
Предупреждение
Если имя экспортированного члена использует неподтвержденную команду или если имя члена использует ограниченные символы, при запуске командлета Import-Module отображается предупреждение.
По умолчанию командлет Import-Module не возвращает объекты в конвейер. Однако командлет поддерживает параметр PassThru, который можно использовать для возврата объекта System.Management.Automation.PSModuleInfo для каждого импортируемого модуля. Чтобы отправить выходные данные на узел, пользователи должны запустить командлет записи.
Ограничение импортируемых элементов
При импорте модуля с помощью командлета импорта модуля по умолчанию все экспортированные члены модуля импортируются в сеанс, включая все команды, экспортированные в модуль вложенным модулем. По умолчанию переменные и псевдонимы не экспортируются. Чтобы ограничить экспортируемые элементы, используйте манифест модуля . Чтобы ограничить импортированные элементы, используйте следующие параметры командлета Import-Module
.
функция: этот параметр ограничивает экспортируемые функции. (Если вы используете манифест модуля, см. ключ FunctionsToExport.)
` командлетов: этот параметр ограничивает экспортируемые командлеты (если вы используете манифест модуля, см. раздел "КомандлетыToExport".)
переменной: этот параметр ограничивает экспортируемые переменные (если вы используете манифест модуля, см. ключ VariableToExport.)
Псевдоним: этот параметр ограничивает экспортируемые псевдонимы (если вы используете манифест модуля, см. раздел AliasesToExport.)
См. также
PowerShell