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. Члены включают командлеты, поставщики, скрипты, функции, переменные и другие средства и файлы. После импорта модуля можно использовать члены модуля в сеансе.
Чтобы импортировать модуль, используйтеимени
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
$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m
Командлет Get-Module
получает PSDiagnostics и модули Dism и сохраняет объекты в переменной $m
. Параметр listAvailable
Эти команды эквивалентны использованию оператора конвейера (|
) для отправки выходных данных команды 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
Первая команда импортирует только командлеты
Командлет Get-Module
получает объект, представляющий модуль PSDiagnostics. Свойство ExportedCmdlets содержит все командлеты, экспортируемые модулем, даже если они не были импортированы.
В третьей команде параметр модуля модуля 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
Он использует параметр
Командлет 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
в сеансе. Результаты показывают, что в сеансе есть две команды
Поскольку функции имеют приоритет над командлетами, функция Get-Date
из модуля TestModule testMod ule выполняется вместо командлета Get-Date
. Чтобы запустить исходную версию Get-Date
, необходимо указать имя команды с именем модуля.
Дополнительные сведения о приоритете команд в PowerShell см. в about_Command_Precedence.
Пример 10. Импорт минимальной версии модуля
Import-Module -Name PSWorkflow -MinimumVersion 3.0.0.0
Эта команда импортирует модуль Import-Module
для импорта только версии 3.0.0.0.0 или более поздней версии модуля.
Вы также можете использовать параметр
Пример 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
. Эта команда эквивалентна использованию командлета
Третья команда использует параметр 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. Команда использует параметр имени
Третья команда выполняет команду
Четвертая команда выполняет команду 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
из модуля. Вместо этого объявите целевой модуль как вложенный модуль в манифесте родительского модуля. Объявление вложенных модулей повышает возможность обнаружения зависимостей.
Параметр глобальной
Чтобы ограничить команды, экспортируемые модулем, используйте команду 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. Можно также использовать параметры модуля
Этот параметр появился в 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. Можно также использовать параметры модуля
Этот параметр появился в 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
указывает, что этот командлет импортирует модули в глобальное состояние сеанса, чтобы они были доступны всем командам в сеансе.
Параметр глобальной
Этот параметр появился в 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
Примечания
Прежде чем импортировать модуль, модуль должен быть установлен на локальном компьютере. То есть каталог модуля должен быть скопирован в каталог, доступный локальному компьютеру. Дополнительные сведения см. в разделе 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 значения свойств, не были заполнены, пока модуль не был импортирован и не был доступен в объекте модуля, который возвращает параметр PassThruPassThru. В 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 для создания сеанса.