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


Установите менеджер пакетов для PowerShell

Если у вас PowerShell 6.0 или выше, у вас уже установлена новая версия PowerShellGet и PackageManagement . Убедитесь, что у вас установлены последние версии этих модулей.

Если у вас PowerShell 7.4 или выше, у вас также установлен Microsoft.PowerShell.PSResourceGet . Microsoft.PowerShell.PSResourceGet — это новое решение для управления пакетами для PowerShell. С этим элементом вам больше не нужно использовать PowerShellGet и PackageManagement. Он устанавливается параллельно с существующими модулями PowerShellGet и PackageManagement .

Windows PowerShell поставляется с версиями 1.0.0.1 PowerShellGet и PackageManagement. Если у вас Windows PowerShell 5.1, вам нужно обновиться до последней версии PowerShellGet и PackageManagement. Все версии PowerShellGet v1.x больше не поддерживаются.

Используйте следующие инструкции для установки или обновления до последних версий этих модулей.

Шаг 1: Включите TLS 1.2

Для доступа к галерее PowerShell необходимо использовать Transport Layer Security (TLS) 1.2 или выше. Используйте следующую команду, чтобы включить TLS 1.2 в вашей сессии PowerShell.

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

Добавьте эту команду в скрипт профиля PowerShell, чтобы убедиться, что TLS 1.2 настроен для каждой сессии PowerShell. Дополнительные сведения о профилях см. в about_Profiles.

Шаг 2: Проверьте установленные версии

Чтобы проверить текущие версии модулей, выполните следующую команду:

$Names = @('PowerShellGet', 'PackageManagement', 'Microsoft.PowerShell.PSResourceGet')
Get-Module -Name $Names -ListAvailable

В Windows PowerShell 5.1 на недавно установленной системе Windows вы должны получить следующий результат:

    Directory: C:\Program Files\WindowsPowerShell\Modules


ModuleType Version  Name               ExportedCommands
---------- -------  ----               ----------------
Binary     1.0.0.1  PackageManagement  {Find-Package, Get-Package, ...
Script     1.0.0.1  PowerShellGet      {Install-Module, Find-Module, ...

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

Если у вас всё ещё используется версия 1.0.0.1, вам нужно следовать инструкциям, чтобы PowerShellGet мог установить обновлённый провайдер NuGet и командный nuget.exe инструмент. Перейдите к следующему шагу.

Шаг 3: Проверьте обновления

Чтобы проверить последние версии модулей, доступных в галерее PowerShell, выполните следующую команду:

$Names = @('PowerShellGet', 'PackageManagement', 'Microsoft.PowerShell.PSResourceGet')
Find-Module -Name $Names -Repository PSGallery

Вы должны получить результат, похожий на следующий результат:

Version   Name                                Repository   Description
-------   ----                                ----------   -----------
1.4.8.1   PackageManagement                   PSGallery    PackageManagement (a.k.a. OneGet) is a n…
2.2.5     PowerShellGet                       PSGallery    PowerShell module with commands for disc…
1.1.1     Microsoft.PowerShell.PSResourceGet  PSGallery    PowerShell module with commands for disc…

Шаг 4: Обновить компоненты NuGet (если это необходимо)

Для работы с PowerShell Gallery требуется обновлённый провайдер NuGet. Команды Publish-* используют nuget.exe или dotnet.exe публикуют ресурсы. Если ни один из этих инструментов недоступен, устанавливает nuget.exePowerShellGet . Если вы всё ещё используете версию 1.0.0.1PowerShellGet, Find-Module вам предложит установить провайдера NuGet. Введите Y, чтобы установить провайдер.

NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet
-based repositories. The NuGet provider must be available in 'C:\Program Files\PackageMan
agement\ProviderAssemblies' or 'C:\Users\user1\AppData\Local\PackageManagement\ProviderAs
semblies'. You can also install the NuGet provider by running 'Install-PackageProvider -N
ame NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install and imp
ort the NuGet provider now?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y
VERBOSE: Installing NuGet provider.

Когда вы отвечаете на Y, PowerShellGet устанавливает провайдера NuGet и nuget.exe инструмент командной строки (при необходимости).

Шаг 5: Установите последний релиз

Для установки последних версий этих модулей выполните следующее:

Install-Module PowerShellGet -Repository PSGallery -Force -AllowClobber
Install-Module Microsoft.PowerShell.PSResourceGet -Repository PSGallery

Замечание

При установке PowerShellGet автоматически устанавливается последняя версия PackageManagement.