Поделиться через


Import-Module

Добавляет модули в текущий сеанс.

Синтаксис

Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession>
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -CimSession <CimSession>
      [-CimResourceUri <Uri>]
      [-CimNamespace <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession>
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Assembly] <Assembly[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ModuleInfo] <PSModuleInfo[]>
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]

Описание

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

Начиная с PowerShell 3.0 установленные модули автоматически импортируются в сеанс при использовании любых команд или поставщиков в модуле. Однако вы по-прежнему можете использовать команду Import-Module для импорта модуля, и вы можете включить и отключить автоматический импорт модуля с помощью переменной предпочтения $PSModuleAutoloadingPreference. Дополнительные сведения о модулях см. в about_Modules. Дополнительные сведения об переменной $PSModuleAutoloadingPreference см. в about_Preference_Variables.

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

Чтобы импортировать модуль, используйтеимени , сборки, ModuleInfo, MinimumVersion и RequiredVersion параметры для идентификации модуля для импорта. По умолчанию импортирует все элементы, экспортируемые модулем, но можно использовать параметрыпсевдонима ,функции , командлетов и параметры переменной, чтобы ограничить импортированные элементы. Вы также можете использовать параметр noClobber , чтобы предотвратить импорт элементов с теми же именами, что и члены в текущем сеансе.

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

Начиная с Windows PowerShell 3.0, можно использовать Import-Module для импорта модулей Common Information Model (CIM), в которых командлеты определены в файлах XML определения командлетов (CDXML). Эта функция позволяет использовать командлеты, реализованные в неуправляемых сборках кода, таких как написанные на C++.

С помощью этих новых функций командлет Import-Module становится основным инструментом для управления разнородными предприятиями, включающими компьютеры под управлением операционной системы Windows и компьютеров под управлением других операционных систем.

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

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

Начните с создания сеанса CIM на удаленном компьютере, который является подключением к инструментарию управления Windows (WMI) на удаленном компьютере. Затем используйте параметр CIMSessionImport-Module для импорта модулей CIM с удаленного компьютера. При импорте модуля CIM и выполнении импортированных команд команды выполняются неявно на удаленном компьютере. Эту стратегию WMI и CIM можно использовать для управления удаленным компьютером.

Примеры

Пример 1. Импорт элементов модуля в текущий сеанс

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

Import-Module -Name PSDiagnostics

По умолчанию Import-Module не создает выходные данные при импорте модуля. Чтобы запросить выходные данные, используйте параметр PassThru или AsCustomObject или общий параметр подробных.

Пример 2. Импорт всех модулей, указанных путем модуля

В этом примере импортируются все доступные модули в пути, указанном переменной среды $env:PSModulePath в текущий сеанс.

Get-Module -ListAvailable | Import-Module

Пример 3. Импорт элементов нескольких модулей в текущий сеанс

В этом примере импортируются элементы модулей PSDiagnostics и Dism в текущий сеанс.

$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m

Командлет Get-Module получает PSDiagnostics и модули Dism и сохраняет объекты в переменной $m. Параметр listAvailable требуется при получении модулей, которые еще не импортированы в сеанс.

Параметр moduleInfo используется для импорта модулей в текущий сеанс.

Эти команды эквивалентны использованию оператора конвейера (|) для отправки выходных данных команды Get-Module в Import-Module.

Пример 4. Импорт всех модулей, указанных путем

В этом примере используется явный путь для идентификации модуля для импорта.

Import-Module -Name c:\ps-test\modules\test -Verbose

VERBOSE: Loading module from path 'C:\ps-test\modules\Test\Test.psm1'.
VERBOSE: Exporting function 'my-parm'.
VERBOSE: Exporting function 'Get-Parameter'.
VERBOSE: Exporting function 'Get-Specification'.
VERBOSE: Exporting function 'Get-SpecDetails'.

Использование параметра подробных приводит к тому, что Import-Module сообщать о ходе выполнения при загрузке модуля. Без подробных, PassThruили параметр AsCustomObject, Import-Module не создает никаких выходных данных при импорте модуля.

Пример 5. Ограничение элементов модуля, импортированных в сеанс

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

Import-Module PSDiagnostics -Function Disable-PSTrace, Enable-PSTrace
(Get-Module PSDiagnostics).ExportedCommands

Key                          Value
---                          -----
Disable-PSTrace              Disable-PSTrace
Disable-PSWSManCombinedTrace Disable-PSWSManCombinedTrace
Disable-WSManTrace           Disable-WSManTrace
Enable-PSTrace               Enable-PSTrace
Enable-PSWSManCombinedTrace  Enable-PSWSManCombinedTrace
Enable-WSManTrace            Enable-WSManTrace
Get-LogProperties            Get-LogProperties
Set-LogProperties            Set-LogProperties
Start-Trace                  Start-Trace
Stop-Trace                   Stop-Trace

Get-Command -Module PSDiagnostics

CommandType     Name                 Version    Source
-----------     ----                 -------    ------
Function        Disable-PSTrace      6.1.0.0    PSDiagnostics
Function        Enable-PSTrace       6.1.0.0    PSDiagnostics

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

Командлет Get-Module получает объект, представляющий модуль PSDiagnostics. Свойство ExportedCmdlets содержит все командлеты, экспортируемые модулем, даже если они не были импортированы.

В третьей команде параметр модуля модуля командлета получает команды, импортированные из модуля PSDiagnostics. Результаты подтверждают, что импортированы только Disable-PSTrace и Enable-PSTrace командлетов.

Пример 6. Импорт элементов модуля и добавление префикса

В этом примере импортируется модуль PSDiagnostics в текущий сеанс, добавляет префикс в имена элементов, а затем отображаются имена элементов с префиксом. Префикс применяется только к членам текущего сеанса. Он не изменяет модуль.

Import-Module PSDiagnostics -Prefix x -PassThru

ModuleType Version    Name               ExportedCommands
---------- -------    ----               ----------------
Script     6.1.0.0    PSDiagnostics      {Disable-xPSTrace, Disable-xPSWSManCombinedTrace, Disable-xW...

Get-Command -Module PSDiagnostics

CommandType     Name                                   Version    Source
-----------     ----                                   -------    ------
Function        Disable-xPSTrace                       6.1.0.0    PSDiagnostics
Function        Disable-xPSWSManCombinedTrace          6.1.0.0    PSDiagnostics
Function        Disable-xWSManTrace                    6.1.0.0    PSDiagnostics
Function        Enable-xPSTrace                        6.1.0.0    PSDiagnostics
Function        Enable-xPSWSManCombinedTrace           6.1.0.0    PSDiagnostics
Function        Enable-xWSManTrace                     6.1.0.0    PSDiagnostics
Function        Get-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Set-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Start-xTrace                           6.1.0.0    PSDiagnostics
Function        Stop-xTrace                            6.1.0.0    PSDiagnostics

Он использует параметр префикса добавляет префикс x ко всем элементам, импортированным из модуля, и параметру PassThru для возврата объекта модуля, представляющего импортированный модуль.

Командлет Get-Command, чтобы получить элементы, импортированные из модуля. В выходных данных показано, что члены модуля были правильно префиксированы.

Пример 7. Получение и использование пользовательского объекта

Эти команды демонстрируют, как получить и использовать пользовательский объект, который возвращает import-Module.

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

Пользовательские объекты очень полезны в скриптах. Они также полезны, если несколько импортированных объектов имеют одинаковые имена. Использование метода скрипта объекта эквивалентно указанию полного имени импортированного члена, включая его имя модуля.

Параметр AsCustomObject можно использовать только при импорте модуля скрипта, поэтому первая задача — определить, какие из доступных модулей — это модуль скрипта.

Get-Module -List | Format-Table -Property Name, ModuleType -AutoSize

Name          ModuleType
----          ----------
Show-Calendar     Script
BitsTransfer    Manifest
PSDiagnostics   Manifest
TestCmdlets       Script

$a = Import-Module -Name Show-Calendar -AsCustomObject -Passthru
$a | Get-Member

TypeName: System.Management.Automation.PSCustomObject
Name          MemberType   Definition
----          ----------   ----------
Equals        Method       bool Equals(System.Object obj)
GetHashCode   Method       int GetHashCode()
GetType       Method       type GetType()
ToString      Method       string ToString()
Show-Calendar ScriptMethod System.Object Show-Calendar();

$a."Show-Calendar"()

Первая команда использует командлет Get-Module для получения доступных модулей. Команда использует оператор конвейера для передачи объектов модуля командлету Format-Table, который содержит список Name и ModuleType каждого модуля в таблице.

Вторая команда использует командлет Import-Module для импорта модуля скрипта Show-Calendar. Команда использует параметр AsCustomObject для запроса пользовательского объекта и параметра PassThru для возврата объекта. Команда сохраняет полученный пользовательский объект в переменной $a.

Третья команда использует оператор конвейера для отправки переменной $a в командлет Get-Member, который получает свойства и методы PSCustomObject в $a. В выходных данных показан метод скрипта Show-Calendar().

Последняя команда использует метод скрипта Show- Calendar. Имя метода должно быть заключено в кавычки, так как оно включает дефис.

Пример 8. Повторное импортирование модуля в тот же сеанс

В этом примере показано, как использовать параметр ForceImport-Module при повторном импорте модуля в тот же сеанс.

Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS

Первая команда импортирует модуль PSDiagnostics. Вторая команда снова импортирует модуль, на этот раз с помощью параметра префикса.

Используя параметр Force, Import-Module удаляет модуль, а затем импортирует его еще раз. Без этого параметра сеанс будет содержать две копии каждого командлета PSDiagnostics, один со стандартным именем и одним с префиксом.

Пример 9. Выполнение команд, скрытых импортированными командами

В этом примере показано, как выполнять команды, скрытые импортированными командами. Модуль TestModule. включает функцию с именем Get-Date, которая возвращает год и день года.

Get-Date

Thursday, August 15, 2019 2:26:12 PM

Import-Module TestModule
Get-Date

19227

Get-Command Get-Date -All | Format-Table -Property CommandType, Name, ModuleName -AutoSize

CommandType     Name         ModuleName
-----------     ----         ----------
Function        Get-Date     TestModule
Cmdlet          Get-Date     Microsoft.PowerShell.Utility

Microsoft.PowerShell.Utility\Get-Date

Thursday, August 15, 2019 2:26:12 PM

Первыйcmdlet returns a **DateTime** object with the current date. After importing the **TestModule** module,Get-Date возвращает год и день года.

Используя параметр AllGet-Command мы получаем все команды Get-Date в сеансе. Результаты показывают, что в сеансе есть две команды , функция из модуля testMod ule TestModule и командлет из модуля Microsoft.PowerShell.Utility.

Поскольку функции имеют приоритет над командлетами, функция Get-Date из модуля TestModule testMod ule выполняется вместо командлета Get-Date. Чтобы запустить исходную версию Get-Date, необходимо указать имя команды с именем модуля.

Дополнительные сведения о приоритете команд в PowerShell см. в about_Command_Precedence.

Пример 10. Импорт минимальной версии модуля

Import-Module -Name PSWorkflow -MinimumVersion 3.0.0.0

Эта команда импортирует модуль PSWorkflow. Он использует параметр MinimumVersionImport-Module для импорта только версии 3.0.0.0.0 или более поздней версии модуля.

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

Пример 11. Импорт модуля с удаленного компьютера

В этом примере показано, как использовать командлет Import-Module для импорта модуля с удаленного компьютера. Эта команда использует функцию неявного удаленного взаимодействия PowerShell.

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

$s = New-PSSession -ComputerName Server01
Get-Module -PSSession $s -ListAvailable -Name NetSecurity

ModuleType Name                                ExportedCommands
---------- ----                                ----------------
Manifest   NetSecurity                         {New-NetIPsecAuthProposal, New-NetIPsecMainModeCryptoProposal, New-Ne...

Import-Module -PSSession $s -Name NetSecurity
Get-Command -Module NetSecurity -Name Get-*Firewall*

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Get-NetFirewallAddressFilter                       NetSecurity
Function        Get-NetFirewallApplicationFilter                   NetSecurity
Function        Get-NetFirewallInterfaceFilter                     NetSecurity
Function        Get-NetFirewallInterfaceTypeFilter                 NetSecurity
Function        Get-NetFirewallPortFilter                          NetSecurity
Function        Get-NetFirewallProfile                             NetSecurity
Function        Get-NetFirewallRule                                NetSecurity
Function        Get-NetFirewallSecurityFilter                      NetSecurity
Function        Get-NetFirewallServiceFilter                       NetSecurity
Function        Get-NetFirewallSetting                             NetSecurity

Get-NetFirewallRule -DisplayName "Windows Remote Management*" | Format-Table -Property DisplayName, Name -AutoSize

DisplayName                                              Name
-----------                                              ----
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP-PUBLIC
Windows Remote Management - Compatibility Mode (HTTP-In) WINRM-HTTP-Compat-In-TCP

Первая команда использует командлет New-PSSession для создания удаленного сеанса (PSSession) на компьютере Server01. Команда сохраняет PSSession в переменной $s.

Вторая команда использует параметр PSSession командлета Get-Module, чтобы получить модуль NetSecurity в сеансе в переменной $s. Эта команда эквивалентна использованию командлета для выполнения команды в сеансе в (). В выходных данных показано, что модуль NetSecurity установлен на компьютере и доступен для сеанса в переменной .

Третья команда использует параметр PSSession командлета Import-Module для импорта модуля NetSecurity из сеанса в переменную $s в текущий сеанс.

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

Пятая команда использует командлет Get-NetFirewallRule для получения правил брандмауэра удаленного управления Windows на компьютере Server01. Эта команда эквивалентна использованию командлета Invoke-Command для выполнения команды Get-NetFirewallRule в сеансе в переменной $s.

Пример 12. Управление хранилищем на удаленном компьютере без операционной системы Windows

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

Команды в этом примере позволяют управлять системами хранения удаленных компьютеров, не работающих под управлением операционной системы Windows.

Первая команда использует командлет New-CimSession для создания сеанса на удаленном компьютере RSDGF03. Сеанс подключается к WMI на удаленном компьютере. Команда сохраняет сеанс CIM в переменной $cs.

Вторая команда использует сеанс CIM в переменной $cs для выполнения команды Import-Module на компьютере RSDGF03. Команда использует параметр имени , чтобы указать модуль хранилища CIM.

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

Четвертая команда выполняет команду Get-Disk. Хотя команда вводится в локальном сеансе, она выполняется неявно на удаленном компьютере, из которого он был импортирован. Команда получает объекты с удаленного компьютера и возвращает их в локальный сеанс.

$cs = New-CimSession -ComputerName RSDGF03
Import-Module -CimSession $cs -Name Storage
# Importing a CIM module, converts the CDXML files for each command into PowerShell scripts.
# These appear as functions in the local session.
Get-Command Get-Disk

CommandType     Name                  ModuleName
-----------     ----                  ----------
Function        Get-Disk              Storage

# Use implicit remoting to query disks on the remote computer from which the module was imported.
Get-Disk

Number Friendly Name              OperationalStatus          Total Size Partition Style
------ -------------              -----------------          ---------- ---------------
0      Virtual HD ATA Device      Online                          40 GB MBR

Параметры

-Alias

Указывает псевдонимы, импортируемые этим командлетом из модуля в текущий сеанс. Введите разделенный запятыми список псевдонимов. Разрешены подстановочные знаки.

Некоторые модули автоматически экспортируют выбранные псевдонимы в сеанс при импорте модуля. Этот параметр позволяет выбрать один из экспортированных псевдонимов.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-ArgumentList

Задает массив аргументов или значений параметров, передаваемых модулю скрипта во время команды Import-Module. Этот параметр действителен только при импорте модуля скрипта.

Вы также можете ссылаться на параметр ArgumentList по его псевдониму, args. Дополнительные сведения см. в about_Aliases.

Тип:Object[]
Aliases:Args
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AsCustomObject

Указывает, что этот командлет возвращает пользовательский объект с элементами, представляющими импортированные элементы модуля. Этот параметр действителен только для модулей скриптов.

При использовании параметра AsCustomObjectImport-Module импортирует элементы модуля в сеанс, а затем возвращает объект PSCustomObject вместо объекта PSModuleInfo. Вы можете сохранить пользовательский объект в переменной и использовать нотацию точек для вызова элементов.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Assembly

Задает массив объектов сборки. Этот командлет импортирует командлеты и поставщики, реализованные в указанных объектах сборки. Введите переменную, содержащую объекты сборки или команду, которая создает объекты сборки. Можно также передать объект сборки в Import-Module.

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

Тип:Assembly[]
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-CimNamespace

Задает пространство имен альтернативного поставщика CIM, предоставляющего модули CIM. Значением по умолчанию является пространство имен поставщика WMI обнаружения модулей.

Используйте этот параметр для импорта модулей CIM с компьютеров и устройств, которые не работают под управлением операционной системы Windows.

Этот параметр появился в Windows PowerShell 3.0.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CimResourceUri

Указывает альтернативное расположение для модулей CIM. Значением по умолчанию является URI ресурса поставщика WMI обнаружения модулей на удаленном компьютере.

Используйте этот параметр для импорта модулей CIM с компьютеров и устройств, которые не работают под управлением операционной системы Windows.

Этот параметр появился в Windows PowerShell 3.0.

Тип:Uri
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-CimSession

Указывает сеанс CIM на удаленном компьютере. Введите переменную, содержащую сеанс CIM или команду, которая получает сеанс CIM, например команду Get-CimSession.

Import-Module используется подключение сеанса CIM для импорта модулей с удаленного компьютера в текущий сеанс. При использовании команд из импортированного модуля в текущем сеансе команды фактически выполняются на удаленном компьютере.

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

Этот параметр появился в Windows PowerShell 3.0.

Тип:CimSession
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Cmdlet

Указывает массив командлетов, импортируемых этим командлетом из модуля в текущий сеанс. Разрешены подстановочные знаки.

Некоторые модули автоматически экспортируют выбранные командлеты в сеанс при импорте модуля. Этот параметр позволяет выбрать один из экспортированных командлетов.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-DisableNameChecking

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

По умолчанию при импорте модуля экспортируются командлеты или функции, у которых нет неутвержденных команд в их именах, PowerShell отображает следующее предупреждение:

ПРЕДУПРЕЖДЕНИЕ. Некоторые импортированные имена команд включают неутвержденные команды, которые могут сделать их менее обнаруживаемыми. Используйте подробный параметр для получения дополнительных сведений или типа Get-Verb, чтобы просмотреть список утвержденных команд.

Это сообщение является только предупреждением. Полный модуль по-прежнему импортируется, включая команды, не соответствующие требованиям. Хотя сообщение отображается для пользователей модуля, проблема именования должна быть устранена автором модуля.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Force

Этот параметр приводит к загрузке или перезагрузке модуля в верхней части текущей.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-FullyQualifiedName

Указывает полное имя спецификации модуля.

Тип:ModuleSpecification[]
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Function

Задает массив функций, импортируемых этим командлетом из модуля в текущий сеанс. Разрешены подстановочные знаки.

Некоторые модули автоматически экспортируют выбранные функции в сеанс при импорте модуля. Этот параметр позволяет выбрать один из экспортированных функций.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-Global

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

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

При вызове из другого модуля командлет Import-Module импортирует команды в модуле, включая команды из вложенных модулей, в состояние сеанса вызывающего объекта.

Кончик

Не следует вызывать Import-Module из модуля. Вместо этого объявите целевой модуль как вложенный модуль в манифесте родительского модуля. Объявление вложенных модулей повышает возможность обнаружения зависимостей.

Параметр глобальной эквивалентен параметру области со значением Global.

Чтобы ограничить команды, экспортируемые модулем, используйте команду Export-ModuleMember в модуле скрипта.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-MaximumVersion

Указывает максимальную версию. Этот командлет импортирует только версию модуля, которая меньше указанного значения или равна ей. Если версия отсутствует, Import-Module создает ошибку.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-MinimumVersion

Указывает минимальную версию. Этот командлет импортирует только версию модуля, превышающую указанное значение или равное ей. Если версия отсутствует, Import-Module создает ошибку.

По умолчанию Import-Module импортирует модуль без проверки номера версии.

Используйте имя параметра MinimumVersion или его псевдоним версии.

Чтобы указать точную версию, используйте параметр RequiredVersion. Можно также использовать параметры модуля и версии ключевого слова #Requires, чтобы требовать определенную версию модуля в скрипте.

Этот параметр появился в Windows PowerShell 3.0.

Тип:Version
Aliases:Version
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ModuleInfo

Задает массив объектов модуля для импорта. Введите переменную, содержащую объекты модуля, или команду, которая получает объекты модуля, например следующую команду: Get-Module -ListAvailable. Можно также передать объекты модуля в Import-Module.

Тип:PSModuleInfo[]
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Name

Задает имена модулей для импорта. Введите имя модуля или имя файла в модуле, например PSD1, PSM1, .dllили ps1. Пути к файлам являются необязательными. Подстановочные знаки не разрешены. Вы также можете передать имена модулей и имена файлов в Import-Module.

Если опустить путь, Import-Module ищет модуль в путях, сохраненных в переменной среды $env:PSModulePath.

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

Тип:String[]
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:True

-NoClobber

Указывает, что этот командлет не импортирует команды с теми же именами, что и существующие команды в текущем сеансе. По умолчанию Import-Module импортируют все экспортированные команды модуля.

Команды с одинаковыми именами могут скрывать или заменять команды в сеансе. Чтобы избежать конфликтов имен команд в сеансе, используйте параметры префикса или NoClobber. Дополнительные сведения о конфликтах имен и приоритете команд см. в разделе "Модули и конфликты имен" в about_Modules и about_Command_Precedence.

Этот параметр появился в Windows PowerShell 3.0.

Тип:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-PassThru

Возвращает объект, представляющий элемент, с которым вы работаете. По умолчанию этот командлет не создает выходные данные.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Prefix

Указывает префикс, который этот командлет добавляет в существительные в именах импортированных элементов модуля.

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

Например, если указать префикс UTC, а затем импортировать командлет Get-Date, командлет известен в сеансе как Get-UTCDate, и он не путается с исходным командлетом Get-Date.

Значение этого параметра имеет приоритет над свойством DefaultCommandPrefix модуля, которое задает префикс по умолчанию.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-PSSession

Указывает управляемый пользователем сеанс PowerShell (PSSession), из которого этот командлет импортирует модули в текущий сеанс. Введите переменную, содержащую PSSession или команду, которая получает PSSession, например команду Get-PSSession.

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

Этот параметр использует функцию неявного удаленного взаимодействия PowerShell. Это эквивалентно использованию командлета Import-PSSession для импорта определенных модулей из сеанса.

Import-Module не удается импортировать модули PowerShell Core из другого сеанса. Модули PowerShell Core имеют имена, начинающиеся с Microsoft.PowerShell.

Этот параметр появился в Windows PowerShell 3.0.

Тип:PSSession
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-RequiredVersion

Указывает версию модуля, импортируемого этим командлетом. Если версия не установлена, Import-Module создает ошибку.

По умолчанию Import-Module импортирует модуль без проверки номера версии.

Чтобы указать минимальную версию, используйте параметр MinimumVersion. Можно также использовать параметры модуля и версии ключевого слова #Requires, чтобы требовать определенную версию модуля в скрипте.

Этот параметр появился в Windows PowerShell 3.0.

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

Тип:Version
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Scope

Указывает область, в которую этот командлет импортирует модуль.

Допустимые значения для этого параметра:

  • глобальные. Доступно для всех команд в сеансе. Эквивалентен параметру Global.
  • локальных. Доступно только в текущей области.

По умолчанию при вызове командлета Import-Module из командной строки, файла скрипта или скрипта все команды импортируются в глобальное состояние сеанса. Можно использовать параметр -Scope со значением Local для импорта содержимого модуля в область скрипта или скрипта.

При вызове из другого модуля командлет Import-Module импортирует команды в модуле, включая команды из вложенных модулей, в состояние сеанса вызывающего объекта. Указание -Scope Global или -Global указывает, что этот командлет импортирует модули в глобальное состояние сеанса, чтобы они были доступны всем командам в сеансе.

Параметр глобальной эквивалентен параметру области со значением Global.

Этот параметр появился в Windows PowerShell 3.0.

Тип:String
Допустимые значения:Local, Global
Position:Named
Default value:Current scope
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Variable

Задает массив переменных, импортируемых этим командлетом из модуля в текущий сеанс. Введите список переменных. Разрешены подстановочные знаки.

Некоторые модули автоматически экспортируют выбранные переменные в сеанс при импорте модуля. Этот параметр позволяет выбрать из экспортированных переменных.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

Входные данные

System.String, System.Management.Automation.PSModuleInfo, System.Reflection.Assembly

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

Выходные данные

None, System.Management.Automation.PSModuleInfo, or System.Management.Automation.PSCustomObject

Этот командлет возвращает PSModuleInfo или PSCustomObject. По умолчанию Import-Module не создает выходные данные. Если указать параметр PassThru, командлет создает объект System.Management.Automation.PSModuleInfo, представляющий модуль. Если указать параметр asCustomObject , он создает объект PSCustomObject.

Примечания

  • Прежде чем импортировать модуль, модуль должен быть установлен на локальном компьютере. То есть каталог модуля должен быть скопирован в каталог, доступный локальному компьютеру. Дополнительные сведения см. в разделе about_Modules.

    Вы также можете использовать параметры PSSession и CIMSession для импорта модулей, установленных на удаленных компьютерах. Однако команды, использующие командлеты в этих модулях, фактически выполняются в удаленном сеансе на удаленном компьютере.

  • При импорте элементов с тем же именем и тем же типом в сеанс PowerShell используется элемент, импортированный последним по умолчанию. Переменные и псевдонимы заменяются, и исходные версии недоступны. Функции, командлеты и поставщики просто затеняются новыми членами. К ним можно получить доступ, указав имя команды с именем оснастки, модуля или пути функции.

  • Чтобы обновить данные форматирования для команд, импортированных из модуля, используйте командлет Update-FormatData. Update-FormatData также обновляет данные форматирования для команд в сеансе, импортированных из модулей. Если файл форматирования для модуля изменяется, можно выполнить команду Update-FormatData, чтобы обновить данные форматирования для импортированных команд. Вам не нужно снова импортировать модуль.

  • Начиная с Windows PowerShell 3.0 основные команды, установленные с помощью PowerShell, упаковываются в модули. В Windows PowerShell 2.0 и в ведущих программах, которые создают сеансы более старого стиля в более поздних версиях PowerShell, основные команды упаковываются в оснастки (PSSnapins). Исключением является Microsoft.PowerShell.Core, которая всегда является оснасткой. Кроме того, удаленные сеансы, такие как запущенные командлетом New-PSSession, являются более старыми сеансами, включающими основные оснастки.

    Сведения о методе CreateDefault2, который создает сеансы нового стиля с основными модулями, см. вметода CreateDefault2.

  • Import-Module не удается импортировать модули PowerShell Core из другого сеанса. Модули PowerShell Core имеют имена, начинающиеся с Microsoft.PowerShell.

  • В Windows PowerShell 2.0 некоторые значения свойств объекта модуля, такие как ExportedCmdlets и NestedModules значения свойств, не были заполнены, пока модуль не был импортирован и не был доступен в объекте модуля, который возвращает параметр PassThru PassThru. В Windows PowerShell 3.0 все значения свойств модуля заполняются.

  • Если вы пытаетесь импортировать модуль, содержащий сборки смешанного режима, несовместимые с Windows PowerShell 3.0, Import-Module возвращает сообщение об ошибке, как показано ниже.

    Import-Module: сборка смешанного режима построена в версии 2.0.50727 среды выполнения и не может быть загружена в среду выполнения 4.0 без дополнительных сведений о конфигурации.

    Эта ошибка возникает, когда модуль, предназначенный для Windows PowerShell 2.0, содержит по крайней мере одну сборку смешанного модуля, то есть сборку, которая включает как управляемый, так и неуправляемый код, например C++ и C#.

    Чтобы импортировать модуль, содержащий сборки смешанного режима, запустите Windows PowerShell 2.0 с помощью следующей команды, а затем повторите команду Import-Module.

    PowerShell.exe -Version 2.0

  • Чтобы использовать функцию сеанса CIM, удаленный компьютер должен иметь WS-Management удаленного взаимодействия и инструментария управления Windows (WMI), который является реализацией стандарта Common Information Model (CIM) Майкрософт. Компьютер также должен иметь поставщик WMI обнаружения модулей или альтернативный поставщик CIM, имеющий те же основные функции.

    Вы можете использовать функцию сеанса CIM на компьютерах, которые не работают под управлением операционной системы Windows и на компьютерах Windows с PowerShell, но не включены удаленное взаимодействие PowerShell.

    Можно также использовать параметры CIM для получения модулей CIM с компьютеров с включенным удаленного взаимодействия PowerShell, включая локальный компьютер. При создании сеанса CIM на локальном компьютере PowerShell использует DCOM вместо WMI для создания сеанса.