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
[-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
[-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
экспортируемые модулем, но для ограничения импортируемых элементов можно использовать параметры Alias, Function, Cmdlet и Variable . Параметр NoClobber не позволяет Import-Module
импортировать элементы с теми же именами, что и члены в текущем сеансе.
Import-Module
импортирует модуль только в текущий сеанс. Чтобы импортировать модуль в каждый новый сеанс, добавьте команду Import-Module
в профиль PowerShell. Дополнительные сведения о профилях см. в разделе about_Profiles.
Вы можете управлять удаленными компьютерами Windows, на которых включено удаленное взаимодействие PowerShell, создав psSession на удаленном компьютере. Затем используйте параметр PSSession для Import-Module
импорта модулей, установленных на удаленном компьютере. Теперь вы можете использовать импортированные команды в текущем сеансе. Команды неявно выполняются на удаленном компьютере.
Начиная с Windows PowerShell 3.0, можно использовать для Import-Module
импорта модулей 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
Командлет Get-Module
получает модули PSDiagnostics и Dism и сохраняет объекты в переменной $m
. Параметр 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'.
Использование параметра Verbose приводит к тому Import-Module
, что при загрузке модуля будет сообщаться о ходе выполнения.
Без параметра Import-Module
Verbose, PassThru или AsCustomObject не создает выходные данные при импорте модуля.
Пример 5. Ограничение элементов модуля, импортированных в сеанс
В этом примере показано, как ограничить, какие члены модуля импортируются в сеанс, и как эта команда влияет на сеанс. Параметр Function ограничивает члены, импортированные из модуля. Вы также можете использовать параметры Alias, Variable и Cmdlet , чтобы ограничить другие элементы, импортируемые модулем.
Командлет 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
При использовании параметра Module командлета Get-Command
отображаются команды, импортированные из модуля PSDiagnostics . Результаты подтверждают, что импортированы только Disable-PSTrace
командлеты и Enable-PSTrace
.
Пример 6. Импорт элементов модуля и добавление префикса
В этом примере модуль PSDiagnostics импортируется в текущий сеанс, добавляется префикс к именам элементов, а затем отображаются имена элементов с префиксом. Параметр Import-Module
Prefix добавляет префикс 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 . Вторая команда импортирует модуль, на этот раз с помощью параметра Prefix.
Без параметра 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 возвращает год и день года.
С помощью параметра Get-Command
All для отобразите Get-Date
все команды в сеансе. Результаты показывают, что в сеансе есть две Get-Date
команды: функция из модуля TestModule и командлет из модуля Microsoft.PowerShell.Utility .
Так как функции имеют приоритет над командлетами, Get-Date
вместо командлета Get-Date
выполняется функция из модуля TestModule. Чтобы запустить исходную версию Get-Date
, необходимо указать имя команды именем модуля.
Дополнительные сведения о приоритете команд в PowerShell см. в разделе about_Command_Precedence.
Пример 10. Импорт минимальной версии модуля
В этом примере выполняется импорт модуля PowerShellGet . Он использует параметр MinimumVersion для импорта Import-Module
модуля только версии 2.0.0 или более поздней.
Import-Module -Name PowerShellGet -MinimumVersion 2.0.0
Вы также можете использовать параметр RequiredVersion для импорта определенной версии модуля или использовать параметры #Requires
Module и Version ключевое слово, чтобы требовать определенную версию модуля в скрипте.
Пример 11. Импорт с использованием полного имени
В этом примере импортируется определенная версия модуля с помощью свойства FullyQualifiedName.
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 и включают брандмауэр из модуля NetSecurity . Выходные данные подтверждают, что модуль и его командлеты были импортированы в текущий сеанс.
Get-NetFirewallRule
Затем командлет получает правила брандмауэра удаленного управления Windows на компьютере Server01. Это эквивалентно использованию командлета 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
Указывает псевдонимы, импортируемые этим командлетом из модуля в текущий сеанс. Введите разделенный запятыми список псевдонимов. Можно использовать подстановочные знаки.
Некоторые модули автоматически экспортируют выбранные псевдонимы в сеанс при импорте модуля. Этот параметр позволяет выбрать один из экспортированных псевдонимов.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-ArgumentList
Задает массив аргументов или значений параметров, которые передаются модулю скрипта Import-Module
во время выполнения команды. Этот параметр действителен только при импорте модуля скрипта.
Вы также можете ссылаться на параметр ArgumentList по его псевдониму, args. Дополнительные сведения о поведении ArgumentList см. в разделе about_Splatting.
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
Указывает полное имя модуля в виде хэш-таблицы. Значение может быть сочетанием строк и хэш-таблиц. Хэш-таблица содержит следующие ключи.
ModuleName
- Обязательно Указывает имя модуля.GUID
- Дополнительные Указывает GUID модуля.- Кроме того, необходимо указать один из трех приведенных ниже ключей. Эти ключи нельзя использовать вместе.
ModuleVersion
— задает минимальную допустимую версию модуля.RequiredVersion
— указывает точную требуемую версию модуля.MaximumVersion
— задает максимально допустимую версию модуля.
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
из модуля. Вместо этого объявите целевой модуль как вложенный модуль в манифесте родительского модуля. Объявление вложенных модулей повышает возможность обнаружения зависимостей.
Параметр Global аналогичен параметру 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
Указывает минимальную версию. Этот командлет импортирует только версию модуля, которая больше или равна указанному значению. Используйте имя параметра MinimumVersion или его псевдоним, Version. Если версия не поддается, Import-Module
возникает ошибка.
Чтобы указать точную версию, используйте параметр RequiredVersion. Вы также можете использовать параметры Module и Version#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. Вы также можете использовать параметры Module и Version#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
указывает, что этот командлет импортирует модули в глобальное состояние сеанса, чтобы они были доступны для всех команд в сеансе.
Параметр Global эквивалентен параметру Scope со значением Global.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | String |
Accepted values: | Local, Global |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipEditionCheck
Пропускает проверка в CompatiblePSEditions
поле .
Позволяет загружать модуль из "$($env:windir)\System32\WindowsPowerShell\v1.0\Modules"
каталога модуля в PowerShell Core, если этот модуль не указан Core
в поле манифеста CompatiblePSEditions
.
При импорте модуля из другого пути этот параметр ничего не делает, так как проверка не выполняется. В Linux и macOS этот параметр ничего не делает.
Дополнительные сведения см. в разделе about_PowerShell_Editions.
Предупреждение
Import-Module -SkipEditionCheck
скорее всего, не удастся импортировать модуль. Даже если выполнение выполнено успешно, вызов команды из модуля может завершиться ошибкой при попытке использовать несовместимый API.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
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
По умолчанию 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.
По умолчанию
Import-Module
импортирует модули в глобальном область даже при вызове из потомков область. Область верхнего уровня и все области потомков имеют доступ к экспортируемым элементам модуля.В область
-Scope Local
потомков ограничивает импорт этой область и всеми его дочерними областями. Затем родительские области не видят импортированные элементы.Примечание
Get-Module
отображает все модули, загруженные в текущем сеансе. Сюда входят модули, загруженные локально в область потомков. Используйте дляGet-Command -Module modulename
просмотра элементов, загруженных в текущий область.Если модуль содержит определения классов и перечислений, используйте
using module
в начале скрипта. При этом импортируются скрипты, включая определения класса и перечисления. Дополнительные сведения см. в разделе about_Using.