Powershell. Ошибка работы PackageManagement

После установки Powershell 5.1 и попытке найти\установить модуль или пакет получаем ошибку следующего типа:

Find-Package : No match was found for the specified search criteria and package name 'Pester'. Try
Get-PackageSource to see all available registered package sources.

Ошибка указывает но то, что выбранный пакет не может быть найден, и предлагает проверить подключенные источники пакетов.
Выполним предложенную команду Get-PackageSource:

WARNING: MSG:UnableToDownload «https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409» «»
WARNING: Unable to download the list of available providers. Check your internet connection.
WARNING: Unable to find package sources.

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

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

Register-PSRepository -Default

Но почему то нам опять выводится сообщения того же типа, как и при выполнении прошлой команды, о том что не могут быть установлены необходимые модули

Все командлеты из модуля PowerShellGet будут возвращать подобные ошибки
Решение

Если вы выполните команду для запроса используемых протоколов безопасности

[Net.ServicePointManager]::SecurityProtocol

то вероятно в консоли отобразятся Ssl3, Tls

Для загрузки пакетов из репозитория нужно изменить набор протоколов:

  • Убедиться что консоль запущена с правами администратора
  • Выполнить следующую команду
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

После этого может потребоваться зарегистрировать провайдера по умолчанию(PSGallery)

Register-PSRepository -Default

Так же, при желании, можно обновить модули до актуальных версий:

Find-Module PackageManagement,PowerShellGet | Install-Module -Force

Попробуем теперь выполнить команду на поиск нужного пакета:

Find-Package Pester

Как видим ошибки больше не возникают, и командлеты модуля PowerShellGet успешно выполняются!

 

Про установку модуля PowershellGet без обновления версии Powershell я написал следующую заметку

2 мысли о “Powershell. Ошибка работы PackageManagement”

  1. Уважаемый автор! Хочу вас поблагодарить за этот манула, он помог решить проблему! Обыскав весь интернет ничего не нашел лишь ваша статья помогла. Огромное спасибо за ваш труд!

Добавить комментарий

Ваш адрес email не будет опубликован.