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


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. В число участников входят командлеты, поставщики, скрипты, функции, переменные и другие средства и файлы. После импорта модуля вы можете использовать его элементы в текущем сеансе.

Чтобы импортировать модуль, используйте параметры Name, Assembly, ModuleInfo, MinimumVersion и RequiredVersion , чтобы определить модуль для импорта. По умолчанию импортирует все элементы, Import-Module экспортируемые модулем, но для ограничения импортируемых элементов можно использовать параметры Псевдоним, Функция, Командлет и Переменная . Вы также можете использовать параметр NoClobber , чтобы запретить Import-Module импорт элементов с теми же именами, что и члены в текущем сеансе.

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

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

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

Чтобы управлять удаленными компьютерами под управлением операционной системы Windows с включенными powerShell и удаленное взаимодействие PowerShell, создайте psSession на удаленном компьютере, а затем используйте параметр PSSession для Get-Module получения модулей PowerShell в PSSession. Когда вы импортируете модули, а затем используете импортированные команды в текущем сеансе, команды выполняются неявно в PSSession на удаленном компьютере. С помощью этой стратегии можно управлять удаленным компьютером.

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

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

Примеры

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

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

Import-Module -Name PSDiagnostics

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

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

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

Эти команды эквивалентны использованию оператора конвейера (|) для отправки выходных 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'.

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

Пример 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

Первая команда импортирует Disable-PSTrace только командлеты и Enable-PSTrace из модуля PSDiagnostics . Параметр Function ограничивает элементы, импортированные из модуля. Вы также можете использовать параметры Псевдоним, Переменная и Командлет , чтобы ограничить другие элементы, импортируемые модулем.

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

В третьей команде параметр Module командлета Get-Command получает команды, импортированные из модуля 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

Он использует параметр Prefix для Import-Module добавляет префикс 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 , который перечисляет имя и тип модуля каждого модуля в таблице.

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

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

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

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

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

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

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

Используя параметр 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

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

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

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

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

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

Import-Module -Name PSWorkflow -MinimumVersion 3.0.0.0

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

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

Пример 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 . Эта команда эквивалентна использованию командлета Invoke-Command для выполнения Get-Module команды в сеансе в $s (Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity). В выходных данных показано, что модуль NetSecurity установлен на компьютере и доступен сеансу в переменной $s .

Третья команда использует параметр 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 в переменной $csImport-Module для выполнения команды на RSDGF03 компьютере. Она применяет параметр Name , чтобы указать модуль CIM Storage.

Третья команда выполняет 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

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

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ArgumentList

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

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

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsCustomObject

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

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Assembly

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

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

Type:Assembly[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-CimNamespace

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

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

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimResourceUri

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

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

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

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimSession

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

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

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

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

Type:CimSession
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Cmdlet

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

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-DisableNameChecking

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

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

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

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedName

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

Type:ModuleSpecification[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Function

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

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Global

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

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

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

Совет

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

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

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumVersion

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MinimumVersion

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

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

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

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

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

Type:Version
Aliases:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ModuleInfo

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

Type:PSModuleInfo[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

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

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

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

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-NoClobber

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

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

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

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Prefix

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

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

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

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PSSession

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

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

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

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

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

Type:PSSession
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-RequiredVersion

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

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

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

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

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

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

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

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

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

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

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

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

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

Type:String
Accepted values:Local, Global
Position:Named
Default value:Current scope
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Variable

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

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 некоторые значения свойств объекта module, такие как ExportedCmdlets и NestedModules, не заполнялись до импорта модуля и были недоступны в объекте модуля, возвращаемом параметром 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), который представляет собой реализацию стандарта CIM корпорации Майкрософт. На компьютере также должен быть поставщик WMI модуля обнаружения или альтернативный поставщик CIM с теми же основными функциями.

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

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