Install-Module

Скачивает один или несколько модулей из репозитория и устанавливает их на локальный компьютер.

Синтаксис

Install-Module
       [-Name] <String[]>
       [-MinimumVersion <String>]
       [-MaximumVersion <String>]
       [-RequiredVersion <String>]
       [-Repository <String[]>]
       [-Credential <PSCredential>]
       [-Scope <String>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllowClobber]
       [-SkipPublisherCheck]
       [-Force]
       [-AllowPrerelease]
       [-AcceptLicense]
       [-PassThru]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-Module
       [-InputObject] <PSObject[]>
       [-Credential <PSCredential>]
       [-Scope <String>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllowClobber]
       [-SkipPublisherCheck]
       [-Force]
       [-AcceptLicense]
       [-PassThru]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Описание

Командлет Install-Module получает один или несколько модулей, соответствующих указанным критериям, из сетевого репозитория. Командлет проверяет, являются ли результаты поиска допустимыми модулями, и копирует папки модулей в расположение установки. Установленные модули не импортируются автоматически после установки. Вы можете отфильтровать установленный модуль на основе минимальной, максимальной и точной версий указанных модулей.

Это прокси-командлет для командлета Get-InstalledPSResource в Microsoft.PowerShell.PSResourceGet. Дополнительные сведения см. в разделе Install-PSResource.

Примеры

Пример 1. Поиск и установка модуля

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

Find-Module -Name PowerShellGet | Install-Module

Использует Find-Module параметр Name для указания модуля PowerShellGet . По умолчанию последняя версия модуля загружается из репозитория. Объект отправляется по конвейеру в Install-Module командлет . Install-Module устанавливает модуль для всех пользователей в $env:ProgramFiles\PowerShell\Modules.

Пример 2. Установка модуля по имени

В этом примере установлена последняя версия модуля PowerShellGet .

Install-Module -Name PowerShellGet

Использует Install-Module параметр Name для указания модуля PowerShellGet . По умолчанию последняя версия модуля загружается из репозитория и устанавливается.

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

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

Install-Module -Name PowerShellGet -MinimumVersion 2.0.1

Использует Install-Module параметр Name для указания модуля PowerShellGet . Параметр MinimumVersion указывает, что версия 2.0.1 скачивается из репозитория и устанавливается. Так как доступна версия 2.0.4 , она загружается и устанавливается для всех пользователей.

Пример 4. Установка определенной версии модуля

В этом примере устанавливается определенная версия модуля PowerShellGet .

Install-Module -Name PowerShellGet -RequiredVersion 2.0.0

Использует Install-Module параметр Name для указания модуля PowerShellGet . Параметр RequiredVersion указывает, что версия 2.0.0 скачивается и устанавливается для всех пользователей.

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

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

Install-Module -Name PowerShellGet -Scope CurrentUser

Использует Install-Module параметр Name для указания модуля PowerShellGet . Install-Moduleзагружает и устанавливает последнюю версию PowerShellGet в каталог текущего пользователя . $HOME\Documents\PowerShell\Modules

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

В этом примере показано, как установить последнюю версию модуля, если эта версия является предварительной версией. Для установки предварительной версии требуется параметр AllowPrerelease .

Install-Module -Name Microsoft.PowerShell.Crescendo -AllowPrerelease

С помощью этого метода вы получите последнюю доступную версию. Если последняя версия не является предварительной версией, вы получите последнюю стабильную версию модуля.

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

В этом примере показано, как установить определенную предварительную версию модуля. Командлет Find-Module можно использовать для поиска предварительных версий модулей в коллекция PowerShell.

Предварительные версии имеют формат <version_number>-<prerelease_label>.

Find-Module PSReadLine -AllVersions -AllowPrerelease | Select-Object -First 5

Version        Name             Repository       Description
-------        ----             ----------       -----------
2.2.6          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.5          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.4-beta1    PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.3          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.2          PSReadLine       PSGallery        Great command line editing in the PowerS…

Install-Module -Name PSReadLine -RequiredVersion 2.2.4-beta1 -AllowPrerelease

Используйте версию, показанную в коллекция PowerShell, для значения параметра RequiredVersion.

Параметры

-AcceptLicense

Для модулей, для которых требуется лицензия, AcceptLicense автоматически принимает лицензионное соглашение во время установки. Дополнительные сведения см. в разделе Модули, требующие принятия лицензии.

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

-AllowClobber

Переопределяет предупреждающие сообщения о конфликтах установки существующих команд на компьютере. Перезаписывает существующие команды с тем же именем, что и команды, устанавливаемые модулем. AllowClobber и Force можно использовать вместе в команде Install-Module .

Командлет прокси-сервера преобразует значение этого параметра в параметр NoClobber командлета Install-PSResource .

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

-AllowPrerelease

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

Командлет прокси-сервера сопоставляет этот параметр с параметром prerelease объекта Install-PSResource.

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

-Confirm

Запрашивает подтверждение перед выполнением командлета Install-Module .

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

-Credential

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

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

-Force

Командлет прокси-сервера игнорирует этот параметр, так как он не поддерживается Install-PSResource.

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

-InputObject

Используется для входных данных конвейера. Если значение, переданное непосредственно в InputObject, возникает ошибка. Используйте конвейер для передачи объектов с параметром InputObject .

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

-MaximumVersion

Командлет прокси-сервера использует значение этого параметра для создания строки поиска версии NuGet для использования с параметром Version .Install-PSResource

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

-MinimumVersion

Командлет прокси-сервера использует значение этого параметра для создания строки поиска версии NuGet для использования с параметром Version .Install-PSResource

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

-Name

Указывает точные имена модулей для установки из сетевой коллекции. Принимается список имен модулей, разделенных запятыми. Имя модуля должно совпадать с именем модуля в репозитории. Используйте Find-Module для получения списка имен модулей.

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

-PassThru

При использовании параметра Install-ModulePassThru выводит объект PSRepositoryItemInfo для модуля. Это те же сведения, которые вы получаете из командлета Find-Module .

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

-Proxy

Командлет прокси-сервера игнорирует этот параметр, так как он не поддерживается Install-PSResource.

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

-ProxyCredential

Командлет прокси-сервера игнорирует этот параметр, так как он не поддерживается Install-PSResource.

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

-Repository

Используйте параметр Repository , чтобы указать имя репозитория, из которого нужно скачать и установить модуль. Используется при регистрации нескольких репозиториев. Указывает имя зарегистрированного репозитория в команде Install-Module . Чтобы зарегистрировать репозиторий, используйте .Register-PSRepository Чтобы отобразить зарегистрированные репозитории, используйте .Get-PSRepository

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

-RequiredVersion

Командлет прокси-сервера использует значение этого параметра для создания строки поиска версии NuGet для использования с параметром Version .Install-PSResource

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

-Scope

Задает область установки модуля. Допустимыми значениями для этого параметра являются AllUsers и CurrentUser.

AllUsers область устанавливает модули в расположении, доступном для всех пользователей компьютера:

$env:ProgramFiles\PowerShell\Modules

CurrentUser устанавливает модули в расположении, доступном только текущему пользователю компьютера. Пример:

$HOME\Documents\PowerShell\Modules

Если область не определена, значение по умолчанию устанавливается на основе версии PowerShellGet.

  • В версиях PowerShellGet 1.x по умолчанию используется значение AllUsers, для установки которого требуется повышение прав.
  • Для PowerShellGet 2.0.0 и более поздних версий в PowerShell 6 или более поздних версий:
    • Значение по умолчанию — CurrentUser, для установки которого не требуется повышение прав.
    • Если вы работаете в сеансе с повышенными привилегиями, по умолчанию используется значение AllUsers.
Type:String
Accepted values:CurrentUser, AllUsers
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipPublisherCheck

Командлет прокси-сервера преобразует этот параметр в AthenticodeCheck перед вызовом Install-PSResource.

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

-WhatIf

Показывает, что произойдет при выполнении Install-Module команды. Командлет не выполняется.

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

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

PSRepositoryItemInfo

Find-Module создает объекты PSRepositoryItemInfo , которые можно отправить по конвейеру в Install-Module.

String[]

PSObject[]

String

PSCredential

Uri

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

Microsoft.PowerShell.Commands.PSRepositoryItemInfo

При использовании параметра Install-ModulePassThru выводит объект PSRepositoryItemInfo для модуля. Это те же сведения, которые вы получаете из командлета Find-Module .

Примечания

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

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

Install-Module выполняется в PowerShell 5.0 или более поздних выпусках, в Windows 7 или Windows 2008 R2 и более поздних выпусках Windows.

Важно!

Начиная с апреля 2020 года коллекция PowerShell не поддерживает протокол TLS (Transport Layer Security) версий 1.0 и 1.1. Если вы не используете TLS 1.2 или более поздней версии, при попытке доступа к коллекция PowerShell появится сообщение об ошибке. Чтобы проверить, используется ли TLS 1.2, выполните следующую команду:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Дополнительные сведения см. в объявлении в блоге, посвященном PowerShell.

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

Если имя модуля, указанное параметром Name , не существует в репозитории, Install-Module возвращает ошибку.

Чтобы установить несколько модулей, используйте параметр Name и укажите разделенный запятыми массив имен модулей. При указании нескольких имен модулей нельзя использовать MinimumVersion, MaximumVersion или RequiredVersion. Find-Module создает объекты PSRepositoryItemInfo , которые можно отправить по конвейеру в Install-Module. Конвейер — это еще один способ указать несколько модулей для установки в одной команде.

По умолчанию модули для область AllUsers устанавливаются в $env:ProgramFiles\PowerShell\Modules. Значение по умолчанию предотвращает путаницу при установке ресурсов PowerShell Desired State Configuration (DSC).

Установка модуля завершается сбоем и не может быть импортирована, если в папке нет .psm1, .psd1или .dll с тем же именем. Используйте параметр Force для установки модуля.

Если версия существующего модуля соответствует имени, указанному в параметре Name , и параметр MinimumVersion или RequiredVersion не используется, автоматически продолжает работу, Install-Module но не устанавливает модуль.

Если версия существующего модуля больше значения параметра MinimumVersion или равна значению параметра RequiredVersion , автоматически продолжит работу, Install-Module но не устанавливает модуль.

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

Install-Module также устанавливает все зависимые модули, указанные в соответствии с требованиями издателя модуля. Издатель перечисляет необходимые модули и их версии в манифесте модуля.