Import-Module

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

Синтаксис

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

Описание

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

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

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

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

Вы можете управлять удаленными компьютерами Windows с поддержкой удаленного взаимодействия PowerShell, создав PSSession на удаленном компьютере. Затем используйте параметр PSSession для Import-Module импорта модулей, установленных на удаленном компьютере. При использовании импортированных команд в текущем сеансе команды неявно выполняются на удаленном компьютере.

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

Для удаленных компьютеров, у которых нет возможности удаленного взаимодействия PowerShell, включая компьютеры, не работающие под управлением операционной системы Windows, можно использовать параметр CIMSession для Import-Module импорта модулей CIM с удаленного компьютера. Импортированные команды выполняются неявно на удаленном компьютере. CIMSession — это подключение к инструментарию управления Windows (WMI) на удаленном компьютере.

Примеры

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

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

Import-Module -Name PSDiagnostics

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

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

Get-Module -ListAvailable | Import-Module

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

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

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

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

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

Пример 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 к выводу отчета о ходе загрузки модуля. Без параметра Verbose, PassThru или AsCustomObject не Import-Module создает выходные данные при импорте модуля.

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

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

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

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

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

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

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

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

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

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

В этом примере показано, как получить и использовать пользовательский объект, возвращаемый Import-Module.

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

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

Параметр AsCustomObject доступен только при импорте модуля скрипта. Используется Get-Module для определения того, какие из доступных модулей — это модуль скрипта.

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"()

Show-Calendar Модуль скрипта импортируется с помощью параметра AsCustomObject для запроса пользовательского объекта и параметра PassThru для возврата объекта. Результирующий пользовательский объект сохраняется в переменной $a .

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

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

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

В этом примере показано, как использовать параметр Import-Module Force при повторном использовании модуля в том же сеансе. Параметр Force удаляет загруженный модуль и снова импортирует его.

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

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

Без параметра Force сеанс будет включать две копии каждого командлета 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:28:31 PM

Первый Get-Date командлет возвращает объект DateTime с текущей датой. После импорта модуля Get-Date TestModule возвращает год и день года.

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

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

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

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

В этом примере импортируется модуль PowerShellGet . Он использует параметр MinimumVersion для импорта только версии 2.0.0 Import-Module или больше модуля.

Import-Module -Name PowerShellGet -MinimumVersion 2.0.0

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

Пример 11. Импорт с помощью полного имени

В этом примере импортируется определенная версия модуля с помощью полнофункционального имени.

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Name, Version

Name          Version
----          -------
PowerShellGet 2.2.1
PowerShellGet 2.1.3
PowerShellGet 2.1.2
PowerShellGet 1.0.0.1

PS> Import-Module -FullyQualifiedName @{ModuleName = 'PowerShellGet'; ModuleVersion = '2.1.3' }

Пример 12. Импорт с помощью полного пути

В этом примере импортируется определенная версия модуля с помощью полного пути.

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Path

Path
----
C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1
C:\program files\powershell\6\Modules\PowerShellGet\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.1.2\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PowerShellGet.psd1

PS> Import-Module -Name 'C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1'

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

В этом примере показано, как использовать 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.

При выполнении Get-Module с параметром PSSession показано, что модуль NetSecurity установлен и доступен на удаленном компьютере. Эта команда эквивалентна использованию командлета Invoke-Command для выполнения Get-Module команды в удаленном сеансе. Например:

Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity

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

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

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

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

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

Командлет Get-Command отображает Get-Disk команду в модуле хранилища . При импорте модуля 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. Дополнительные сведения о поведении ArgumentList см. в about_Splatting.

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

-AsCustomObject

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

При использовании параметра Import-Module AsCustomObject импортирует элементы модуля в сеанс, а затем возвращает объект 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 отображает следующее предупреждение:

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

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

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

-Force

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

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

-FullyQualifiedName

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

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

Если значение является спецификацией имени или модуля, PowerShell выполняет поиск в PSModulePath для указанного модуля.

Спецификация модуля — это хэш-файл, имеющий следующие ключи.

  • ModuleName - Обязательный указывает имя модуля.
  • GUID - Необязательный атрибут указывает GUID модуля.
  • Также требуется указать по крайней мере один из трех приведенных ниже ключей.
    • ModuleVersion — задает минимальную допустимую версию модуля.
    • MaximumVersion — задает максимальную допустимую версию модуля.
    • RequiredVersion — указывает точную, требуемую версию модуля. Это нельзя использовать с другими ключами версии.
Тип: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 из модуля. Вместо этого объявите целевой модуль как вложенный модуль в манифесте родительского модуля. Объявление вложенных модулей повышает возможность обнаружения зависимостей.

Глобальный параметр эквивалентен параметру Scope со значением 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

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

Чтобы указать точную версию, используйте параметр 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 среды.

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

Примечание.

Хотя можно импортировать файл скрипта (.ps1) в виде модуля, файлы скриптов обычно не структурированы, как файл модулей скриптов (.psm1). Импорт файла скрипта не гарантирует, что он доступен в качестве модуля. Дополнительные сведения см. в about_Modules.

Тип: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 из другого сеанса. Основные модули PowerShell имеют имена, начинающиеся с 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

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

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

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

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

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

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

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

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

-SkipEditionCheck

Пропускает проверку в CompatiblePSEditions поле.

Позволяет загружать модуль из "$($env:windir)\System32\WindowsPowerShell\v1.0\Modules" каталога модуля в PowerShell Core, если этот модуль не указан Core в поле манифеста CompatiblePSEditions .

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

Дополнительные сведения см. в about_PowerShell_Editions.

Предупреждение

Import-Module -SkipEditionCheck скорее всего, не удается импортировать модуль. Даже если это выполнено успешно, вызов команды из модуля может завершиться ошибкой при попытке использовать несовместимый API.

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

-UseWindowsPowerShell

Загружает модуль с помощью функций совместимости Windows PowerShell. Дополнительные сведения см . в about_Windows_PowerShell_Compatibility .

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

-Variable

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

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

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

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

String

Имя модуля можно передать этому командлету.

PSModuleInfo

Объект модуля можно передать в этот командлет.

Assembly

Объект сборки можно передать в этот командлет.

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

None

По умолчанию этот командлет не возвращает выходные данные.

PSModuleInfo

Если указать параметр PassThru , командлет создает объект System.Management.Automation.PSModuleInfo , представляющий импортированный модуль.

PSCustomObject

Если указать параметры AsCustomObject и PassThru вместе, командлет создает объект PSCustomObject , представляющий модуль.

Примечания

PowerShell включает следующие псевдонимы для Import-Module:

  • Для всех платформ.

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

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

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

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

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

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

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

  • Если вы пытаетесь импортировать модуль, содержащий сборки смешанного режима, несовместимые с 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), который представляет собой реализацию стандарта CIM корпорации Майкрософт. На компьютере также должен быть поставщик WMI модуля обнаружения или альтернативный поставщик CIM с теми же основными функциями.

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

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

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

    В области потомков ограничивает импорт этой области -Scope Local и всех ее нисходящих областей. Затем родительские области не отображают импортированные элементы.

    Примечание.

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

  • Import-Module не загружает определения класса и перечисления в модуле. Используйте инструкцию using module в начале скрипта. Это импортирует модуль, включая определения класса и перечисления. Дополнительные сведения см. в about_Using.

  • Во время разработки модуля скрипта обычно вносятся изменения в код, а затем загружается новая версия модуля с параметром Import-Module Force . Это работает только для изменений функций в корневом модуле. Import-Module не перезагрузит вложенные модули. Кроме того, нет способа загрузить обновленные классы или перечисления.

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

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